35 {{
'H',
'K',
'E',
'Y',
'_',
'C',
'L',
'A',
'S',
'S',
'E',
'S',
'_',
'R',
'O',
'O',
'T',0},
37 {{
'H',
'K',
'E',
'Y',
'_',
'C',
'U',
'R',
'R',
'E',
'N',
'T',
'_',
'U',
'S',
'E',
'R',0},
39 {{
'H',
'K',
'E',
'Y',
'_',
'L',
'O',
'C',
'A',
'L',
'_',
'M',
'A',
'C',
'H',
'I',
'N',
'E',0},
41 {{
'H',
'K',
'E',
'Y',
'_',
'U',
'S',
'E',
'R',
'S',0},
43 {{
'H',
'K',
'E',
'Y',
'_',
'P',
'E',
'R',
'F',
'O',
'R',
'M',
'A',
'N',
'C',
'E',
'_',
'D',
'A',
'T',
'A',0},
45 {{
'H',
'K',
'E',
'Y',
'_',
'D',
'Y',
'N',
'_',
'D',
'A',
'T',
'A',0},
47 {{
'H',
'K',
'E',
'Y',
'_',
'C',
'U',
'R',
'R',
'E',
'N',
'T',
'_',
'C',
'O',
'N',
'F',
'I',
'G',0},
104 LPCOLESTR iter, iter2 = *
str;
117 if(*iter ==
'}' || *iter ==
'=') {
119 }
else if(*iter ==
'\'') {
121 iter =
wcschr(iter,
'\'');
123 WARN(
"Unexpected end of script\n");
143 LPCOLESTR iter, iter2 =
data;
145 static const WCHAR wstr[] = {
'%',0};
154 iter =
wcschr(iter2,
'%');
161 for(rep_iter =
This->rep; rep_iter; rep_iter = rep_iter->
next) {
162 if(rep_iter->
key_len == iter-iter2
167 WARN(
"Could not find replacement: %s\n",
debugstr_wn(iter2, iter-iter2));
200 static const WCHAR wstrNoRemove[] = {
'N',
'o',
'R',
'e',
'm',
'o',
'v',
'e',0};
201 static const WCHAR wstrForceRemove[] = {
'F',
'o',
'r',
'c',
'e',
'R',
'e',
'm',
'o',
'v',
'e',0};
202 static const WCHAR wstrDelete[] = {
'D',
'e',
'l',
'e',
't',
'e',0};
203 static const WCHAR wstrval[] = {
'v',
'a',
'l',0};
211 while(
buf->str[1] ||
buf->str[0] !=
'}') {
216 key_type = FORCE_REMOVE;
220 key_type = DO_DELETE;
230 if(key_type == IS_VAL) {
233 }
else if(key_type == DO_DELETE) {
237 if(key_type == FORCE_REMOVE)
241 WARN(
"Could not create(open) key: %08x\n", lres);
246 }
else if(key_type != IS_VAL && key_type != DO_DELETE) {
253 if(key_type != DO_DELETE && *iter ==
'=') {
264 switch(
buf->str[0]) {
272 WARN(
"Could set value of key: %08x\n", lres);
286 WARN(
"Could set value of key: %08x\n", lres);
320 WARN(
"Could not set value of key: 0x%08x\n", lres);
340 }
else if(key_type == IS_VAL) {
341 WARN(
"value not set!\n");
346 if(key_type != IS_VAL && key_type != DO_DELETE && *iter ==
'{' &&
iswspace(iter[1])) {
355 TRACE(
"%x %x\n", do_register, key_type);
356 if(!do_register && (key_type ==
NORMAL || key_type == FORCE_REMOVE)) {
361 if(hkey && key_type != IS_VAL)
372 if(hkey && key_type != IS_VAL)
380 LPCOLESTR iter =
data;
392 WARN(
"ward.len == 0, failed\n");
408 if(
buf.str[1] ||
buf.str[0] !=
'{') {
415 WARN(
"Processing key failed: %08x\n",
hres);
436 WARN(
"preprocessing failed!\n");
450 LPCOLESTR szID, LPCOLESTR szType,
BOOL do_register)
469 regstrw[
len-1] =
'\0';
475 WARN(
"could not load resource\n");
479 WARN(
"Could not find source\n");
484 WARN(
"Could not load resource file\n");
507 regstrw[
len-1] =
'\0';
533 IRegistrar_AddRef(iface);
555 IRegistrar_ClearReplacements(iface);
609 LPCOLESTR szID, LPCOLESTR szType)
617 LPCOLESTR szID, LPCOLESTR szType)
653 UINT nID, LPCOLESTR szType)
661 UINT nID, LPCOLESTR szType)
714 static const WCHAR moduleW[] = {
'M',
'O',
'D',
'U',
'L',
'E',0};
715 static const WCHAR registryW[] = {
'R',
'E',
'G',
'I',
'S',
'T',
'R',
'Y',0};
718 FIXME(
"hinst %p: did not get module name\n", inst);
735 for (iter = pMapEntries; iter && iter->
szKey; iter++)
736 IRegistrar_AddReplacement(registrar, iter->
szKey, iter->
szData);
743 if(registrar != pReg)
744 IRegistrar_Release(registrar);
static unsigned char bytes[4]
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define RegCloseKey(hKey)
IRegistrar IRegistrar_iface
LSTATUS WINAPI RegDeleteTreeW(_In_ HKEY, _In_opt_ LPCWSTR)
static LPCWSTR LPCWSTR module_name
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
LONG WINAPI RegDeleteKeyW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey)
LONG WINAPI RegCreateKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
static HRESULT WINAPI Registrar_QueryInterface(IRegistrar *iface, REFIID riid, void **ppvObject)
static HRESULT WINAPI Registrar_StringRegister(IRegistrar *iface, LPCOLESTR data)
static HRESULT do_preprocess(const Registrar *This, LPCOLESTR data, strbuf *buf)
static const IRegistrarVtbl RegistrarVtbl
static HRESULT WINAPI Registrar_ResourceUnregisterSz(IRegistrar *iface, LPCOLESTR resFileName, LPCOLESTR szID, LPCOLESTR szType)
static HRESULT resource_register(Registrar *This, LPCOLESTR resFileName, LPCOLESTR szID, LPCOLESTR szType, BOOL do_register)
static HRESULT WINAPI Registrar_FileRegister(IRegistrar *iface, LPCOLESTR fileName)
static HRESULT WINAPI Registrar_StringUnregister(IRegistrar *iface, LPCOLESTR data)
static void strbuf_write(LPCOLESTR str, strbuf *buf, int len)
HRESULT WINAPI AtlUpdateRegistryFromResourceD(HINSTANCE inst, LPCOLESTR res, BOOL bRegister, struct _ATL_REGMAP_ENTRY *pMapEntries, IRegistrar *pReg)
static ULONG WINAPI Registrar_AddRef(IRegistrar *iface)
struct rep_list_str rep_list
static Registrar * impl_from_IRegistrar(IRegistrar *iface)
static const struct @322 root_keys[]
static HRESULT string_register(Registrar *This, LPCOLESTR data, BOOL do_register)
static HRESULT do_process_root_key(LPCOLESTR data, BOOL do_register)
static HRESULT do_process_key(LPCOLESTR *pstr, HKEY parent_key, strbuf *buf, BOOL do_register)
static HRESULT WINAPI Registrar_ClearReplacements(IRegistrar *iface)
HRESULT WINAPI AtlCreateRegistrar(IRegistrar **ret)
static ULONG WINAPI Registrar_Release(IRegistrar *iface)
static HRESULT WINAPI Registrar_FileUnregister(IRegistrar *iface, LPCOLESTR fileName)
static HRESULT WINAPI Registrar_AddReplacement(IRegistrar *iface, LPCOLESTR Key, LPCOLESTR item)
static HRESULT WINAPI Registrar_ResourceRegister(IRegistrar *iface, LPCOLESTR resFileName, UINT nID, LPCOLESTR szType)
static void strbuf_init(strbuf *buf)
static HRESULT file_register(Registrar *This, LPCOLESTR fileName, BOOL do_register)
static HRESULT WINAPI Registrar_ResourceRegisterSz(IRegistrar *iface, LPCOLESTR resFileName, LPCOLESTR szID, LPCOLESTR szType)
static HRESULT WINAPI Registrar_ResourceUnregister(IRegistrar *iface, LPCOLESTR resFileName, UINT nID, LPCOLESTR szType)
#define ReadFile(a, b, c, d, e)
#define INVALID_HANDLE_VALUE
#define HeapFree(x, y, z)
#define MultiByteToWideChar
DWORD WINAPI GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh)
DWORD WINAPI GetModuleFileNameW(HINSTANCE hModule, LPWSTR lpFilename, DWORD nSize)
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryExW(LPCWSTR lpLibFileName, HANDLE hFile, DWORD dwFlags)
HRSRC WINAPI FindResourceW(HINSTANCE hModule, LPCWSTR name, LPCWSTR type)
DWORD WINAPI SizeofResource(HINSTANCE hModule, HRSRC hRsrc)
HGLOBAL WINAPI LoadResource(HINSTANCE hModule, HRSRC hRsrc)
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
GLuint GLuint GLsizei count
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLenum GLuint GLenum GLsizei const GLchar * buf
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
_Check_return_ long __cdecl wcstol(_In_z_ const wchar_t *_Str, _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, _In_ int _Radix)
_Check_return_ unsigned long __cdecl wcstoul(_In_z_ const wchar_t *_Str, _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, _In_ int _Radix)
REFIID LPVOID DWORD_PTR dw
static const int digits[]
#define memcpy(s1, s2, n)
static DWORD LPDWORD reslen
#define IsEqualGUID(rguid1, rguid2)
_Check_return_ _CRTIMP int __cdecl _wcsnicmp(_In_reads_or_z_(_MaxCount) const wchar_t *_Str1, _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, _In_ size_t _MaxCount)
static const WCHAR moduleW[]
struct rep_list_str * next
#define CONTAINING_RECORD(address, type, field)
DWORD WINAPI GetLastError(void)
#define LOAD_LIBRARY_AS_DATAFILE
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
#define HRESULT_FROM_WIN32(x)
#define HKEY_LOCAL_MACHINE
#define HKEY_CURRENT_CONFIG
#define HKEY_CURRENT_USER
#define HKEY_PERFORMANCE_DATA
#define HKEY_CLASSES_ROOT
#define MAKEINTRESOURCEW(i)