44#define WIN32_NO_STATUS
50#define USE_COM_CONTEXT_DEF
122enum class_reg_data_origin
130 enum class_reg_data_origin
origin;
147 case DVASPECT_CONTENT:
149 case DVASPECT_THUMBNAIL:
153 case DVASPECT_DOCPRINT:
162 ACTCTX_SECTION_KEYED_DATA
data;
249#ifndef RTL_CONSTANT_STRING
250#define RTL_CONSTANT_STRING(s) { sizeof(s)-sizeof((s)[0]), sizeof(s), s }
261 attr.RootDirectory = 0;
269 attr.SecurityQualityOfService =
NULL;
297 access &= ~KEY_WOW64_32KEY;
314 attr.RootDirectory = hkey;
322 attr.SecurityQualityOfService =
NULL;
336 attr.RootDirectory = hkey;
344 attr.SecurityQualityOfService =
NULL;
373 *
ppv = &
This->ISynchronize_iface;
375 *
ppv = &
This->ISynchronizeHandle_iface;
390 TRACE(
"%p, refcount %ld.\n", iface,
ref);
399 TRACE(
"%p, refcount %ld.\n", iface,
ref);
414 TRACE(
"%p, %#lx, %#lx.\n", iface,
dwFlags, dwMilliseconds);
451 return ISynchronize_QueryInterface(&
This->ISynchronize_iface,
riid,
ppv);
457 return ISynchronize_AddRef(&
This->ISynchronize_iface);
463 return ISynchronize_Release(&
This->ISynchronize_iface);
487 FIXME(
"Aggregation not implemented.\n");
494 hr = ISynchronize_QueryInterface(&
This->ISynchronize_iface, iid,
ppv);
495 ISynchronize_Release(&
This->ISynchronize_iface);
511 TRACE(
"Returning version %d, build %d.\n",
rmm,
rup);
658 IUnknown_AddRef(
info->state);
686 if (pv) IUnknown_AddRef(pv);
690 TRACE(
"-- release %p now\n",
info->state);
691 IUnknown_Release(
info->state);
722 LONG auto_treat_as_size =
sizeof(auto_treat_as);
731 if (!
RegQueryValueW(hkey,
L"AutoTreatAs", auto_treat_as, &auto_treat_as_size) &&
753 WARN(
"StringFromGUID2 failed\n");
759 WARN(
"RegSetValue failed\n");
849 hr = IBindCtx_SetBindOptions(pbc, pBindOptions);
860 IMoniker_Release(pmk);
864 IBindCtx_Release(pbc);
884 const WCHAR *quote_start;
887 const WCHAR *quote_end =
wcschr(quote_start + 1,
'\"');
890 (quote_end - quote_start - 1) *
sizeof(
WCHAR));
891 src[quote_end - quote_start - 1] =
'\0';
static DWORD const fdwReason
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static const WCHAR nameW[]
#define RegCloseKey(hKey)
HRESULT HandlerCF_Create(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
void release_std_git(void)
static struct oletls * COM_CurrentInfo(void)
HRESULT WINAPI OLE32_DllRegisterServer(void)
HRESULT WINAPI OLE32_DllUnregisterServer(void)
static LSTATUS(WINAPI *pRegDeleteTreeW)(HKEY
LONG WINAPI RegDeleteKeyW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey)
LSTATUS WINAPI RegQueryValueW(HKEY hkey, LPCWSTR name, LPWSTR data, LPLONG count)
LONG WINAPI RegSetValueW(HKEY hKeyOriginal, LPCWSTR lpSubKey, DWORD dwType, LPCWSTR lpData, DWORD cbData)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
INT WINAPI StringFromGUID2(REFGUID guid, LPOLESTR str, INT cmax)
HRESULT WINAPI DECLSPEC_HOTPATCH CoInitializeEx(void *reserved, DWORD model)
HRESULT WINAPI CLSIDFromString(LPCOLESTR str, LPCLSID clsid)
HRESULT WINAPI CoWaitForMultipleHandles(DWORD flags, DWORD timeout, ULONG handle_count, HANDLE *handles, DWORD *index)
#define DLL_PROCESS_ATTACH
#define DLL_PROCESS_DETACH
#define HeapFree(x, y, z)
#define ERROR_INVALID_HANDLE
static DWORD DWORD * dwLength
BOOL WINAPI DeactivateActCtx(IN DWORD dwFlags, IN ULONG_PTR ulCookie)
BOOL WINAPI ActivateActCtx(IN HANDLE hActCtx, OUT PULONG_PTR ulCookie)
DWORD WINAPI ExpandEnvironmentStringsW(IN LPCWSTR lpSrc, IN LPWSTR lpDst, IN DWORD nSize)
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryExW(LPCWSTR lpLibFileName, HANDLE hFile, DWORD dwFlags)
DWORD WINAPI SearchPathW(IN LPCWSTR lpPath OPTIONAL, IN LPCWSTR lpFileName, IN LPCWSTR lpExtension OPTIONAL, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart OPTIONAL)
BOOL WINAPI FindActCtxSectionGuid(DWORD dwFlags, const GUID *lpExtGuid, ULONG ulId, const GUID *lpSearchGuid, PACTCTX_SECTION_KEYED_DATA pInfo)
_ACRTIMP int __cdecl memcmp(const void *, const void *, size_t)
void clipbrd_destroy(void)
static BOOL get_object_dll_path(const struct class_reg_data *regdata, WCHAR *dst, DWORD dstlen)
void WINAPI CoFreeLibrary(HINSTANCE hLibrary)
static HRESULT WINAPI ISynchronize_fnReset(ISynchronize *iface)
HRESULT WINAPI CoGetObject(LPCWSTR pszName, BIND_OPTS *pBindOptions, REFIID riid, void **ppv)
static ISynchronizeVtbl vt_ISynchronize
static MREImpl * impl_from_ISynchronize(ISynchronize *iface)
HRESULT WINAPI DllRegisterServer(void)
struct ManualResetEvent MREImpl
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID reserved)
static ULONG WINAPI ISynchronize_fnRelease(ISynchronize *iface)
DWORD WINAPI CoBuildVersion(void)
HRESULT COM_OpenKeyForCLSID(REFCLSID clsid, LPCWSTR keyname, REGSAM access, HKEY *subkey)
BOOL WINAPI CoIsOle1Class(REFCLSID clsid)
static HRESULT WINAPI SynchronizeHandle_QueryInterface(ISynchronizeHandle *iface, REFIID riid, void **ppv)
HRESULT WINAPI CoSetState(IUnknown *pv)
static ULONG WINAPI ISynchronize_fnAddRef(ISynchronize *iface)
#define RTL_CONSTANT_STRING(s)
static HKEY classes_root_hkey
static MREImpl * impl_from_ISynchronizeHandle(ISynchronizeHandle *iface)
HINSTANCE WINAPI CoLoadLibrary(LPOLESTR lpszLibName, BOOL bAutoFree)
void WINAPI CoFreeAllLibraries(void)
HRESULT WINAPI CoTreatAsClass(REFCLSID clsidOld, REFCLSID clsidNew)
static HKEY get_classes_root_hkey(HKEY hkey, REGSAM access)
HRESULT WINAPI DllUnregisterServer(void)
BOOL actctx_get_miscstatus(const CLSID *clsid, DWORD aspect, DWORD *status)
static HKEY create_classes_root_hkey(DWORD access)
static NTSTATUS create_key(HKEY *retkey, ACCESS_MASK access, const OBJECT_ATTRIBUTES *attr)
static ULONG WINAPI SynchronizeHandle_AddRef(ISynchronizeHandle *iface)
HRESULT WINAPI CoGetState(IUnknown **ppv)
HRESULT Handler_DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
static HRESULT WINAPI ISynchronize_fnQueryInterface(ISynchronize *iface, REFIID riid, void **ppv)
static const ISynchronizeHandleVtbl SynchronizeHandleVtbl
static ULONG WINAPI SynchronizeHandle_Release(ISynchronizeHandle *iface)
LSTATUS create_classes_key(HKEY hkey, const WCHAR *name, REGSAM access, HKEY *retkey)
LSTATUS open_classes_key(HKEY hkey, const WCHAR *name, REGSAM access, HKEY *retkey)
HRESULT WINAPI ManualResetEvent_CreateInstance(IClassFactory *iface, IUnknown *outer, REFIID iid, void **ppv)
static enum comclass_miscfields dvaspect_to_miscfields(DWORD aspect)
static HRESULT WINAPI ISynchronize_fnSignal(ISynchronize *iface)
HRESULT WINAPI CoAllowSetForegroundWindow(IUnknown *pUnk, void *pvReserved)
static HRESULT WINAPI ISynchronize_fnWait(ISynchronize *iface, DWORD dwFlags, DWORD dwMilliseconds)
static HRESULT WINAPI SynchronizeHandle_GetHandle(ISynchronizeHandle *iface, HANDLE *ph)
HRESULT WINAPI MkParseDisplayName(LPBC pbc, LPCOLESTR szDisplayName, LPDWORD pchEaten, LPMONIKER *ppmk)
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLuint GLint GLboolean GLint GLenum access
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
#define InterlockedCompareExchangePointer
static const BOOL is_win64
#define memmove(s1, s2, n)
#define ERROR_FILE_NOT_FOUND
static LPCWSTR LPVOID pvReserved
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
NTSYSAPI NTSTATUS NTAPI NtOpenKey(OUT PHANDLE KeyHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes)
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
NTSTATUS NTAPI NtCreateKey(OUT PHANDLE KeyHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, IN ULONG TitleIndex, IN PUNICODE_STRING Class OPTIONAL, IN ULONG CreateOptions, OUT PULONG Disposition OPTIONAL)
@ COINIT_APARTMENTTHREADED
HRESULT WINAPI CreateBindCtx(DWORD reserved, IBindCtx **bind_context)
#define IsEqualGUID(rguid1, rguid2)
#define OBJ_CASE_INSENSITIVE
ISynchronize ISynchronize_iface
ISynchronizeHandle ISynchronizeHandle_iface
PUNICODE_STRING ObjectName
const WCHAR * module_name
union class_reg_data::@323 u
enum class_reg_data_origin origin
struct class_reg_data::@323::@324 actctx
DWORD miscstatusthumbnail
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
BOOL WINAPI DECLSPEC_HOTPATCH ResetEvent(IN HANDLE hEvent)
#define CONTAINING_RECORD(address, type, field)
#define STATUS_OBJECT_NAME_NOT_FOUND
#define LOAD_WITH_ALTERED_SEARCH_PATH
NTSYSAPI ULONG WINAPI RtlNtStatusToDosError(NTSTATUS)
#define REGDB_E_CLASSNOTREG
#define REGDB_E_READREGDB
#define REGDB_E_WRITEREGDB
#define CLASS_E_CLASSNOTAVAILABLE
#define REGDB_E_KEYMISSING
_In_ DWORD _In_ int _In_ int _In_opt_ LPNLSVERSIONINFO _In_opt_ LPVOID lpReserved
#define HKEY_CLASSES_ROOT