45#define NONAMELESSUNION
48#define WIN32_NO_STATUS
54#define USE_COM_CONTEXT_DEF
85 0, 0, { (
DWORD_PTR)(__FILE__
": csApartment") }
179 0, 0, { (
DWORD_PTR)(__FILE__
": cs_registered_psclsid_list") }
233 0, 0, { (
DWORD_PTR)(__FILE__
": csRegisteredClassList") }
241 case DVASPECT_CONTENT:
243 case DVASPECT_THUMBNAIL:
247 case DVASPECT_DOCPRINT:
256 ACTCTX_SECTION_KEYED_DATA
data;
317 attrs =
attr->Attributes;
327 attr->RootDirectory = subkey;
334 attr->Attributes = attrs;
345 {
'\\',
'R',
'e',
'g',
'i',
's',
't',
'r',
'y',
'\\',
'M',
'a',
'c',
'h',
'i',
'n',
'e',
346 '\\',
'S',
'o',
'f',
't',
'w',
'a',
'r',
'e',
'\\',
'C',
'l',
'a',
's',
's',
'e',
's',0};
359 attr.RootDirectory = 0;
363 attr.SecurityQualityOfService =
NULL;
392 static const WCHAR wow6432nodeW[] = {
'W',
'o',
'w',
'6',
'4',
'3',
'2',
'N',
'o',
'd',
'e',0};
393 access &= ~KEY_WOW64_32KEY;
410 attr.RootDirectory = hkey;
414 attr.SecurityQualityOfService =
NULL;
428 attr.RootDirectory = hkey;
432 attr.SecurityQualityOfService =
NULL;
469 0, 0, { (
DWORD_PTR)(__FILE__
": csOpenDllList") }
481static const WCHAR wszAptWinClass[] = {
'O',
'l',
'e',
'M',
'a',
'i',
'n',
'T',
'h',
'r',
'e',
'a',
'd',
'W',
'n',
'd',
'C',
'l',
'a',
's',
's',0};
496 if (!
wcsicmp(library_name,
ptr->library_name) &&
527 ERR(
"couldn't load in-process dll %s\n",
debugstr_w(library_name));
538 ERR(
"couldn't find function DllGetClassObject in %s\n",
debugstr_w(library_name));
632 TRACE(
"creating new apartment, model=%d\n", model);
757 if (curClass->
runContext & CLSCTX_LOCAL_SERVER)
817 *
ppv = &
This->ISynchronize_iface;
819 *
ppv = &
This->ISynchronizeHandle_iface;
895 return ISynchronize_QueryInterface(&
This->ISynchronize_iface,
riid,
ppv);
901 return ISynchronize_AddRef(&
This->ISynchronize_iface);
907 return ISynchronize_Release(&
This->ISynchronize_iface);
931 FIXME(
"Aggregation not implemented.\n");
938 hr = ISynchronize_QueryInterface(&
This->ISynchronize_iface, iid,
ppv);
939 ISynchronize_Release(&
This->ISynchronize_iface);
955 *
ppv = &
This->IServiceProvider_iface;
1043 MSHCTX_LOCAL,
NULL, MSHLFLAGS_TABLESTRONG);
1045 IStream_Release(
obj->marshal_stream);
1093 TRACE(
"(%08x)\n",dwRegister);
1097 ERR(
"COM was not initialized\n");
1108 if (curClass->
dwCookie == dwRegister)
1117 ERR(
"called from wrong apartment, should be called from %s\n",
1138 if (
entry->dll->DllCanUnloadNow && (
entry->dll->DllCanUnloadNow() ==
S_OK))
1140 DWORD real_delay = delay;
1148 if (
entry->multi_threaded)
1149 real_delay = 10 * 60 * 1000;
1163 if (!
entry->unload_time)
entry->unload_time = 1;
1166 else if (
entry->unload_time)
1167 entry->unload_time = 0;
1216 IServiceProvider_Release(&
local_server->IServiceProvider_iface);
1341 BOOL apartment_threaded,
1344 static const WCHAR wszOle32[] = {
'o',
'l',
'e',
'3',
'2',
'.',
'd',
'l',
'l',0};
1353 TRACE(
"calling ole32!DllGetClassObject\n");
1398 if (!apartment_threaded)
1427 const WCHAR *quote_start;
1430 const WCHAR *quote_end =
wcschr(quote_start + 1,
'\"');
1433 (quote_end - quote_start - 1) *
sizeof(
WCHAR));
1434 src[quote_end - quote_start - 1] =
'\0';
1444 static const WCHAR dllW[] = {
'.',
'd',
'l',
'l',0};
1492 IUnknown_Release(
object);
1579 DWORD apartment_tid = 0;
1582 if (!multi_threaded && main_apartment)
1592 if (!apartment_hwnd)
1624 if (multi_threaded || !main_apartment)
1645 params.regdata = *regdata;
1651 params.apartment_threaded = !multi_threaded;
1669 ERR(
"host apartment didn't create window\n");
1677 IStream_Release(
params.stream);
1694 memset(&wclass, 0,
sizeof(wclass));
1747 if (
info->errorinfo) IErrorInfo_Release(
info->errorinfo);
1748 if (
info->state) IUnknown_Release(
info->state);
1757 if (
info->context_token) IObjContext_Release(
info->context_token);
1776 TRACE(
"Returning version %d, build %d.\n",
rmm,
rup);
1786 if (
id ==
spy->id &&
spy->spy)
1806 if (--
info->spies_lock)
return;
1810 if (
spy->spy)
continue;
1844 WARN(
"Could not allocate tls\n");
1848 hr = IInitializeSpy_QueryInterface(
spy, &IID_IInitializeSpy, (
void **)&
spy);
1855 IInitializeSpy_Release(
spy);
1903 IInitializeSpy_Release(
spy->spy);
1905 if (!
info->spies_lock)
1924 WARN(
"Attempt to change threading model of this apartment from %s to %s\n",
1925 info->apt->multi_threaded ?
"multi-threaded" :
"apartment threaded",
1941 if (
info->ole_inits)
1942 WARN(
"Uninitializing apartment while Ole is still initialized\n" );
2010 if (lpReserved!=
NULL)
2012 ERR(
"(%p, %x) - Bad parameter passed-in %p, must be an old Windows Application\n", lpReserved, (
int)
dwCoInit, lpReserved);
2026 TRACE(
"() - Initializing the COM libraries\n");
2088 ERR(
"Mismatched CoUninitialize\n");
2093 if (
cursor->spy) IInitializeSpy_PostUninitialize(
cursor->spy,
info->inits);
2110 TRACE(
"() - Releasing the COM libraries\n");
2115 else if (lCOMRefCnt<1) {
2116 ERR(
"CoUninitialize() - not CoInitialized.\n" );
2123 if (
cursor->spy) IInitializeSpy_PostUninitialize(
cursor->spy,
info->inits);
2160 hr = IUnknown_QueryInterface(lpUnk, &IID_IMarshal, (
void **)&marshal);
2163 hr = IMarshal_DisconnectObject(marshal,
reserved);
2164 IMarshal_Release(marshal);
2170 ERR(
"apartment not initialised\n");
2219 if (!(((
c >=
'0') && (
c <=
'9')) ||
2220 ((
c >=
'a') && (
c <=
'f')) ||
2221 ((
c >=
'A') && (
c <=
'F'))))
2228 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2229 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2230 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2231 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0,
2232 0, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2233 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2234 0, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf
2242 if (!
s ||
s[0]!=
'{') {
2253 for (
i = 1;
i < 9;
i++) {
2257 if (
s[9]!=
'-')
return FALSE;
2260 for (
i = 10;
i < 14;
i++) {
2264 if (
s[14]!=
'-')
return FALSE;
2267 for (
i = 15;
i < 19;
i++) {
2271 if (
s[19]!=
'-')
return FALSE;
2273 for (
i = 20;
i < 37;
i+=2) {
2282 if (
s[37] ==
'}' &&
s[38] ==
'\0')
2292 static const WCHAR clsidW[] = {
'\\',
'C',
'L',
'S',
'I',
'D',0 };
2294 LONG buf2len =
sizeof(buf2);
2380 memset(iid, 0,
sizeof(*iid));
2436 static const WCHAR formatW[] = {
'{',
'%',
'0',
'8',
'X',
'-',
'%',
'0',
'4',
'X',
'-',
2437 '%',
'0',
'4',
'X',
'-',
'%',
'0',
'2',
'X',
'%',
'0',
'2',
'X',
'-',
2438 '%',
'0',
'2',
'X',
'%',
'0',
'2',
'X',
'%',
'0',
'2',
'X',
'%',
'0',
'2',
'X',
2439 '%',
'0',
'2',
'X',
'%',
'0',
'2',
'X',
'}',0 };
2442 id->Data4[0],
id->Data4[1],
id->Data4[2],
id->Data4[3],
2443 id->Data4[4],
id->Data4[5],
id->Data4[6],
id->Data4[7] );
2450 static const WCHAR wszCLSIDSlash[] = {
'C',
'L',
'S',
'I',
'D',
'\\',0};
2482 static const WCHAR szAppId[] = {
'A',
'p',
'p',
'I',
'd',0 };
2483 static const WCHAR szAppIdKey[] = {
'A',
'p',
'p',
'I',
'd',
'\\',0 };
2532 static const WCHAR wszProgID[] = {
'P',
'r',
'o',
'g',
'I',
'D',0};
2533 ACTCTX_SECTION_KEYED_DATA
data;
2604 ACTCTX_SECTION_KEYED_DATA
data;
2692 static const WCHAR wszInterface[] = {
'I',
'n',
't',
'e',
'r',
'f',
'a',
'c',
'e',
'\\',0};
2693 static const WCHAR wszPSC[] = {
'\\',
'P',
'r',
'o',
'x',
'y',
'S',
't',
'u',
'b',
'C',
'l',
's',
'i',
'd',
'3',
'2',0};
2697 ACTCTX_SECTION_KEYED_DATA
data;
2706 ERR(
"apartment not initialised\n");
2731 *pclsid = ifaceps->
iid;
2787 ERR(
"apartment not initialised\n");
2904 static LONG next_cookie;
2910 TRACE(
"(%s,%p,0x%08x,0x%08x,%p)\n",
2913 if ( (lpdwRegister==0) || (
pUnk==0) )
2918 ERR(
"COM was not initialized\n");
2927 dwClsContext |= CLSCTX_INPROC_SERVER;
2936 if (dwClsContext & CLSCTX_LOCAL_SERVER)
2938 IUnknown_Release(foundObject);
2942 IUnknown_Release(foundObject);
2949 if ( newClass ==
NULL )
2975 *lpdwRegister = newClass->
dwCookie;
2977 if (dwClsContext & CLSCTX_LOCAL_SERVER) {
2991 IStream_Release(marshal_stream);
3001 static const WCHAR wszThreadingModel[] = {
'T',
'h',
'r',
'e',
'a',
'd',
'i',
'n',
'g',
'M',
'o',
'd',
'e',
'l',0};
3002 static const WCHAR wszApartment[] = {
'A',
'p',
'a',
'r',
't',
'm',
'e',
'n',
't',0};
3003 static const WCHAR wszFree[] = {
'F',
'r',
'e',
'e',0};
3004 static const WCHAR wszBoth[] = {
'B',
'o',
't',
'h',0};
3005 WCHAR threading_model[10 ];
3012 threading_model[0] =
'\0';
3023 return data->u.actctx.data->model;
3028 BOOL hostifnecessary,
void **
ppv)
3031 BOOL apartment_threaded;
3033 if (hostifnecessary)
3039 apartment_threaded =
TRUE;
3045 apartment_threaded =
FALSE;
3052 apartment_threaded =
TRUE;
3055 FIXME(
"unrecognised threading model %d for object %s, should be main-threaded?\n", model,
debugstr_guid(rclsid));
3061 apartment_threaded =
FALSE;
3121 ERR(
"apartment not initialised\n");
3126 FIXME(
"pServerInfo->name=%s pAuthInfo=%p\n",
3130 if (CLSCTX_INPROC_SERVER & dwClsContext)
3141 if (CLSCTX_INPROC & dwClsContext)
3143 ACTCTX_SECTION_KEYED_DATA
data;
3148 ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION,
3173 hres = IUnknown_QueryInterface(regClassObject, iid,
ppv);
3180 IUnknown_Release(regClassObject);
3186 if (CLSCTX_INPROC_SERVER & dwClsContext)
3188 static const WCHAR wszInprocServer32[] = {
'I',
'n',
'p',
'r',
'o',
'c',
'S',
'e',
'r',
'v',
'e',
'r',
'3',
'2',0};
3205 clsreg.
u.
hkey = hkey;
3222 if (CLSCTX_INPROC_HANDLER & dwClsContext)
3224 static const WCHAR wszInprocHandler32[] = {
'I',
'n',
'p',
'r',
'o',
'c',
'H',
'a',
'n',
'd',
'l',
'e',
'r',
'3',
'2',0};
3241 clsreg.
u.
hkey = hkey;
3259 if (CLSCTX_LOCAL_SERVER & dwClsContext)
3267 if (CLSCTX_REMOTE_SERVER & dwClsContext)
3269 FIXME (
"CLSCTX_REMOTE_SERVER not supported\n");
3274 ERR(
"no class object %s could be created for context 0x%x\n",
3332 MULTI_QI multi_qi = { iid };
3335 TRACE(
"(rclsid=%s, pUnkOuter=%p, dwClsContext=%08x, riid=%s, ppv=%p)\n",
debugstr_guid(rclsid),
3342 *
ppv = multi_qi.pItf;
3365 index = fetched = 1;
3370 mqi[
index].hr = IUnknown_QueryInterface(unk, mqi[
index].pIID, (
void**)&mqi[
index].pItf);
3376 IUnknown_Release(unk);
3401 TRACE(
"(%s %p %x %p %u %p)\n",
debugstr_guid(rclsid), pUnkOuter, dwClsContext, pServerInfo, cmq, pResults);
3403 if (!cmq || !pResults)
3407 FIXME(
"() non-NULL pServerInfo not supported!\n");
3417 ERR(
"apartment not initialised\n");
3428 TRACE(
"Retrieving GIT\n");
3449 hres = IClassFactory_CreateInstance(
cf, pUnkOuter, pResults[0].pIID, (
void**)&unk);
3450 IClassFactory_Release(
cf);
3456 FIXME(
"no instance created for interface %s of class %s, hres is 0x%08x\n",
3488 FIXME(
"() non-NULL server_info not supported\n");
3498 ERR(
"failed to get CLSID from a file\n");
3522 IUnknown_Release(unk);
3526 hr = IPersistFile_Load(pf,
filename, grfmode);
3527 IPersistFile_Release(pf);
3533 IUnknown_Release(unk);
3560 FIXME(
"() non-NULL server_info not supported\n");
3571 ERR(
"failed to get CLSID from a file\n");
3575 rclsid = &
stat.clsid;
3590 ERR(
"failed to get IPersistStorage\n");
3594 IPersistStorage_Load(ps,
storage);
3595 IPersistStorage_Release(ps);
3682 ERR(
"apartment not initialised\n");
3746 BOOL fLastUnlockReleases)
3751 TRACE(
"pUnk=%p, fLock=%s, fLastUnlockReleases=%s\n",
3752 pUnk, fLock ?
"TRUE" :
"FALSE", fLastUnlockReleases ?
"TRUE" :
"FALSE");
3756 ERR(
"apartment not initialised\n");
3763 WARN(
"stub object not found %p\n",
pUnk);
3795 FIXME(
"(0x%08x,0x%08x),stub!\n",
x,
y);
3828 IUnknown_AddRef(
info->state);
3856 if (pv) IUnknown_AddRef(pv);
3860 TRACE(
"-- release %p now\n",
info->state);
3861 IUnknown_Release(
info->state);
3888 static const WCHAR wszAutoTreatAs[] = {
'A',
'u',
't',
'o',
'T',
'r',
'e',
'a',
't',
'A',
's',0};
3889 static const WCHAR wszTreatAs[] = {
'T',
'r',
'e',
'a',
't',
'A',
's',0};
3894 LONG auto_treat_as_size =
sizeof(auto_treat_as);
3903 if (!
RegQueryValueW(hkey, wszAutoTreatAs, auto_treat_as, &auto_treat_as_size) &&
3925 WARN(
"StringFromGUID2 failed\n");
3931 WARN(
"RegSetValue failed\n");
3961 static const WCHAR wszTreatAs[] = {
'T',
'r',
'e',
'a',
't',
'A',
's',0};
3965 LONG len =
sizeof(szClsidNew);
3969 if (!clsidOld || !clsidNew)
3972 *clsidNew = *clsidOld;
3987 ERR(
"Failed CLSIDFromStringA(%s), hres 0x%08x\n",
debugstr_w(szClsidNew),
res);
4014 TRACE(
"(%p)\n",
id);
4053 TRACE(
"(%p, %p)\n", lpMessageFilter, lplpMessageFilter);
4060 WARN(
"can't set message filter in MTA or uninitialized apt\n");
4064 if (lpMessageFilter)
4065 IMessageFilter_AddRef(lpMessageFilter);
4069 lpOldMessageFilter = apt->
filter;
4070 apt->
filter = lpMessageFilter;
4074 if (lplpMessageFilter)
4075 *lplpMessageFilter = lpOldMessageFilter;
4076 else if (lpOldMessageFilter)
4077 IMessageFilter_Release(lpOldMessageFilter);
4123 SOLE_AUTHENTICATION_SERVICE* asAuthSvc,
4124 void* pReserved1,
DWORD dwAuthnLevel,
4125 DWORD dwImpLevel,
void* pReserved2,
4126 DWORD dwCapabilities,
void* pReserved3)
4128 FIXME(
"(%p,%d,%p,%p,%d,%d,%p,%d,%p) - stub!\n", pSecDesc, cAuthSvc,
4129 asAuthSvc, pReserved1, dwAuthnLevel, dwImpLevel, pReserved2,
4130 dwCapabilities, pReserved3);
4264 DWORD *pImpLevel,
void **ppAuthInfo,
DWORD *pCapabilities)
4269 TRACE(
"%p\n", pProxy);
4271 hr = IUnknown_QueryInterface(pProxy, &IID_IClientSecurity, (
void **)&pCliSec);
4274 hr = IClientSecurity_QueryBlanket(pCliSec, pProxy, pAuthnSvc,
4275 pAuthzSvc, ppServerPrincName,
4276 pAuthnLevel, pImpLevel, ppAuthInfo,
4278 IClientSecurity_Release(pCliSec);
4314 TRACE(
"%p\n", pProxy);
4316 hr = IUnknown_QueryInterface(pProxy, &IID_IClientSecurity, (
void **)&pCliSec);
4319 hr = IClientSecurity_SetBlanket(pCliSec, pProxy, AuthnSvc,
4320 AuthzSvc, pServerPrincName,
4321 AuthnLevel, ImpLevel, pAuthInfo,
4323 IClientSecurity_Release(pCliSec);
4351 TRACE(
"%p\n", pProxy);
4353 hr = IUnknown_QueryInterface(pProxy, &IID_IClientSecurity, (
void **)&pCliSec);
4356 hr = IClientSecurity_CopyProxy(pCliSec, pProxy, ppCopy);
4357 IClientSecurity_Release(pCliSec);
4388 if (!
info->call_state)
4391 return IUnknown_QueryInterface(
info->call_state,
riid,
ppv);
4452 DWORD *pCapabilities)
4457 TRACE(
"(%p, %p, %p, %p, %p, %p, %p)\n",
4458 pAuthnSvc, pAuthzSvc, pServerPrincName, pAuthnLevel, pImpLevel,
4459 pPrivs, pCapabilities);
4464 hr = IServerSecurity_QueryBlanket(
4465 pSrvSec, pAuthnSvc, pAuthzSvc, pServerPrincName, pAuthnLevel,
4466 pImpLevel, pPrivs, pCapabilities);
4467 IServerSecurity_Release(pSrvSec);
4504 hr = IServerSecurity_ImpersonateClient(pSrvSec);
4505 IServerSecurity_Release(pSrvSec);
4537 hr = IServerSecurity_RevertToSelf(pSrvSec);
4538 IServerSecurity_Release(pSrvSec);
4584 BOOL message_loop =
apt && !
apt->multi_threaded;
4590 pHandles, lpdwindex);
4619 TRACE(
"waiting for rpc completion or window message\n");
4644 PENDINGTYPE pendingtype =
4646 PENDINGTYPE_NESTED : PENDINGTYPE_TOPLEVEL;
4647 DWORD be_handled = IMessageFilter_MessagePending(
4649 now - start_time, pendingtype);
4650 TRACE(
"IMessageFilter_MessagePending returned %d\n", be_handled);
4653 case PENDINGMSG_CANCELCALL:
4654 WARN(
"call canceled\n");
4657 case PENDINGMSG_WAITNOPROCESS:
4658 case PENDINGMSG_WAITDEFPROCESS:
4680 TRACE(
"received WM_QUIT message\n");
4686 TRACE(
"received message whilst waiting for RPC: 0x%04x\n",
msg.message);
4696 TRACE(
"waiting for rpc completion\n");
4754 hr = IBindCtx_SetBindOptions(pbc, pBindOptions);
4765 IMoniker_Release(pmk);
4769 IBindCtx_Release(pbc);
4885 TRACE(
"(%p)\n", apttype);
4900 TRACE(
"(%p)\n", thdtype);
4917 TRACE(
"(%p)\n", logical_thread_id);
4961 FIXME(
"(%p/%p)->(%p, %p, %s, %d, %p)\n",
This, iface,
pCallback,
param,
debugstr_guid(
riid),
method, punk);
5126 ERR(
"apartment not initialised\n");
5134 if (!
info->context_token)
5149 info->context_token = &
context->IObjContext_iface;
5153 TRACE(
"context_token=%p\n",
info->context_token);
5169 static const WCHAR wszInprocHandler32[] = {
'I',
'n',
'p',
'r',
'o',
'c',
'H',
'a',
'n',
'd',
'l',
'e',
'r',
'3',
'2',0};
5184 static const WCHAR wszOle32[] = {
'o',
'l',
'e',
'3',
'2',
'.',
'd',
'l',
'l',0};
5216 *
type = APTTYPE_CURRENT;
5217 else if (
info->apt->multi_threaded)
5219 else if (
info->apt->main)
5261 FIXME(
"(%p): stub\n", surrogate);
5381 hProxyDll = hinstDLL;
#define CO_E_NOTINITIALIZED
static struct _test_info results[8]
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
static const struct optioninfo global_options[]
static void * heap_alloc(size_t len)
static BOOL heap_free(void *mem)
#define InterlockedIncrement
#define InterlockedDecrement
static const WCHAR dllW[]
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static const WCHAR nameW[]
static void list_remove(struct list_entry *entry)
static int list_empty(struct list_entry *head)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
static void list_add_head(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
HRESULT WINAPI DllCanUnloadNow(void)
const GUID IID_IClassFactory
#define RegCloseKey(hKey)
const CLSID CLSID_GlobalOptions
const CLSID CLSID_ManualResetEvent
const CLSID CLSID_InProcFreeMarshaler
const CLSID CLSID_StdGlobalInterfaceTable
static APARTMENT * COM_CurrentApt(void)
#define DEBUG_SET_CRITSEC_NAME(cs, name)
#define WINE_CLSCTX_DONT_HOST
ULONG stub_manager_int_release(struct stub_manager *This) DECLSPEC_HIDDEN
void RPC_UnregisterAllChannelHooks(void) DECLSPEC_HIDDEN
HRESULT WINAPI RunningObjectTableImpl_Initialize(void) DECLSPEC_HIDDEN
static struct oletls * COM_CurrentInfo(void)
HRESULT RPC_RegisterChannelHook(REFGUID rguid, IChannelHook *hook) DECLSPEC_HIDDEN
ULONG stub_manager_ext_addref(struct stub_manager *m, ULONG refs, BOOL tableweak) DECLSPEC_HIDDEN
static GUID COM_CurrentCausalityId(void)
HRESULT RPC_GetLocalClassObject(REFCLSID rclsid, REFIID iid, LPVOID *ppv) DECLSPEC_HIDDEN
#define DEBUG_CLEAR_CRITSEC_NAME(cs)
void stub_manager_disconnect(struct stub_manager *m) DECLSPEC_HIDDEN
IGlobalInterfaceTable * get_std_git(void) DECLSPEC_HIDDEN
HRESULT apartment_disconnectproxies(struct apartment *apt) DECLSPEC_HIDDEN
void release_std_git(void) DECLSPEC_HIDDEN
ULONG stub_manager_ext_release(struct stub_manager *m, ULONG refs, BOOL tableweak, BOOL last_unlock_releases) DECLSPEC_HIDDEN
void RPC_StopLocalServer(void *registration) DECLSPEC_HIDDEN
HRESULT WINAPI OLE32_DllUnregisterServer(void) DECLSPEC_HIDDEN
HRESULT FTMarshalCF_Create(REFIID riid, LPVOID *ppv) DECLSPEC_HIDDEN
HRESULT HandlerCF_Create(REFCLSID rclsid, REFIID riid, LPVOID *ppv) DECLSPEC_HIDDEN
struct stub_manager * get_stub_manager_from_object(APARTMENT *apt, IUnknown *object, BOOL alloc) DECLSPEC_HIDDEN
HRESULT WINAPI RunningObjectTableImpl_UnInitialize(void) DECLSPEC_HIDDEN
void RPC_ExecuteCall(struct dispatch_params *params) DECLSPEC_HIDDEN
HRESULT RPC_StartLocalServer(REFCLSID clsid, IStream *stream, BOOL multi_use, void **registration) DECLSPEC_HIDDEN
HRESULT WINAPI OLE32_DllRegisterServer(void) DECLSPEC_HIDDEN
static const WCHAR clsidW[]
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)
#define DLL_THREAD_DETACH
#define DLL_PROCESS_ATTACH
#define DLL_PROCESS_DETACH
#define GetProcAddress(x, y)
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
#define GetCurrentProcess()
#define HeapFree(x, y, z)
#define ERROR_INVALID_HANDLE
static DWORD DWORD * dwLength
VOID WINAPI ReleaseActCtx(IN HANDLE hActCtx)
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)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
VOID WINAPI GetSystemTimeAsFileTime(OUT PFILETIME lpFileTime)
DWORD WINAPI GetTickCount(VOID)
BOOL WINAPI InitOnceExecuteOnce(_Inout_ PINIT_ONCE InitOnce, _In_ __callback PINIT_ONCE_FN InitFn, _Inout_opt_ PVOID Parameter, _Outptr_opt_result_maybenull_ LPVOID *Context)
BOOL WINAPI FindActCtxSectionStringW(DWORD dwFlags, const GUID *lpExtGuid, ULONG ulId, LPCWSTR lpSearchStr, PACTCTX_SECTION_KEYED_DATA pInfo)
BOOL WINAPI FindActCtxSectionGuid(DWORD dwFlags, const GUID *lpExtGuid, ULONG ulId, const GUID *lpSearchGuid, PACTCTX_SECTION_KEYED_DATA pInfo)
HRESULT WINAPI CoGetPSClsid(REFIID riid, CLSID *pclsid)
static APARTMENT * apartment_findmain(void)
DWORD WINAPI CoGetCurrentProcess(void)
static BOOL get_object_dll_path(const struct class_reg_data *regdata, WCHAR *dst, DWORD dstlen)
static void apartment_freeunusedlibraries(struct apartment *apt, DWORD delay)
static HRESULT COM_GetRegisteredClassObject(const struct apartment *apt, REFCLSID rclsid, DWORD dwClsContext, LPUNKNOWN *ppUnk)
void WINAPI CoFreeLibrary(HINSTANCE hLibrary)
static APARTMENT * apartment_find_mta(void)
HRESULT WINAPI CoRegisterClassObject(REFCLSID rclsid, LPUNKNOWN pUnk, DWORD dwClsContext, DWORD flags, LPDWORD lpdwRegister)
static BOOL is_valid_hex(WCHAR c)
static void COM_RevokeAllClasses(const struct apartment *apt)
static HRESULT WINAPI Context_CTI_GetCurrentLogicalThreadId(IComThreadingInfo *iface, GUID *logical_thread_id)
ULONG WINAPI CoAddRefServerProcess(void)
HRESULT(WINAPI * DllCanUnloadNowFunc)(void)
HRESULT WINAPI CoRegisterMessageFilter(LPMESSAGEFILTER lpMessageFilter, LPMESSAGEFILTER *lplpMessageFilter)
static const IServiceProviderVtbl LocalServerVtbl
static ULONG WINAPI GlobalOptions_AddRef(IGlobalOptions *iface)
HRESULT apartment_createwindowifneeded(struct apartment *apt)
static Context * impl_from_IComThreadingInfo(IComThreadingInfo *iface)
void WINAPI DECLSPEC_HOTPATCH CoFreeUnusedLibrariesEx(DWORD dwUnloadDelay, DWORD dwReserved)
static HRESULT WINAPI ISynchronize_fnReset(ISynchronize *iface)
HRESULT WINAPI CoGetObject(LPCWSTR pszName, BIND_OPTS *pBindOptions, REFIID riid, void **ppv)
static ISynchronizeVtbl vt_ISynchronize
static const WCHAR classes_rootW[]
HRESULT WINAPI CoGetInstanceFromIStorage(COSERVERINFO *server_info, CLSID *rclsid, IUnknown *outer, DWORD cls_context, IStorage *storage, DWORD count, MULTI_QI *results)
static void WINAPI Context_OC_Reserved4(IObjContext *iface)
HRESULT WINAPI CoFileTimeNow(FILETIME *lpFileTime)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
static void init_multi_qi(DWORD count, MULTI_QI *mqi, HRESULT hr)
HRESULT WINAPI CoGetTreatAsClass(REFCLSID clsidOld, LPCLSID clsidNew)
static MREImpl * impl_from_ISynchronize(ISynchronize *iface)
static ATOM apt_win_class
HRESULT WINAPI DllRegisterServer(void)
static HRESULT apartment_getclassobject(struct apartment *apt, LPCWSTR dllpath, BOOL apartment_threaded, REFCLSID rclsid, REFIID riid, void **ppv)
static LRESULT CALLBACK apartment_wndproc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
HRESULT WINAPI CoRegisterSurrogate(ISurrogate *surrogate)
HRESULT WINAPI IIDFromString(LPCOLESTR s, IID *iid)
static ULONG WINAPI Context_CTI_AddRef(IComThreadingInfo *iface)
static HRESULT WINAPI Context_CTI_SetCurrentLogicalThreadId(IComThreadingInfo *iface, REFGUID logical_thread_id)
static Context * impl_from_IContextCallback(IContextCallback *iface)
struct ManualResetEvent MREImpl
static APARTMENT * apartment_get_or_create(DWORD model)
static DWORD apartment_addref(struct apartment *apt)
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID reserved)
static ULONG Context_AddRef(Context *This)
static ULONG WINAPI ISynchronize_fnRelease(ISynchronize *iface)
static HRESULT get_local_server_stream(APARTMENT *apt, IStream **ret)
static CRITICAL_SECTION_DEBUG class_cs_debug
static HRESULT COMPOBJ_DllList_Add(LPCWSTR library_name, OpenDll **ret)
DWORD WINAPI CoBuildVersion(void)
static ULONG WINAPI Context_OC_AddRef(IObjContext *iface)
HRESULT COM_OpenKeyForCLSID(REFCLSID clsid, LPCWSTR keyname, REGSAM access, HKEY *subkey)
static HRESULT WINAPI LocalServer_QueryInterface(IServiceProvider *iface, REFIID riid, void **ppv)
static struct list registered_psclsid_list
static LocalServer * impl_from_IServiceProvider(IServiceProvider *iface)
static HRESULT WINAPI Context_CC_QueryInterface(IContextCallback *iface, REFIID riid, LPVOID *ppv)
BOOL WINAPI CoIsOle1Class(REFCLSID clsid)
static HRESULT Context_QueryInterface(Context *iface, REFIID riid, LPVOID *ppv)
static HRESULT WINAPI SynchronizeHandle_QueryInterface(ISynchronizeHandle *iface, REFIID riid, void **ppv)
HRESULT WINAPI CoSetState(IUnknown *pv)
static const IComThreadingInfoVtbl Context_Threading_Vtbl
static void COM_RevokeRegisteredClassObject(RegisteredClass *curClass)
static ULONG WINAPI ISynchronize_fnAddRef(ISynchronize *iface)
static ULONG WINAPI GlobalOptions_Release(IGlobalOptions *iface)
static HRESULT WINAPI Context_CTI_QueryInterface(IComThreadingInfo *iface, REFIID riid, LPVOID *ppv)
static HKEY classes_root_hkey
static HRESULT return_multi_qi(IUnknown *unk, DWORD count, MULTI_QI *mqi, BOOL include_unk)
static void lock_init_spies(struct oletls *info)
static void COM_TlsDestroy(void)
HRESULT WINAPI CoRegisterInitializeSpy(IInitializeSpy *spy, ULARGE_INTEGER *cookie)
BOOL WINAPI CoIsHandlerConnected(IUnknown *pUnk)
static MREImpl * impl_from_ISynchronizeHandle(ISynchronizeHandle *iface)
HRESULT WINAPI CoDisconnectObject(LPUNKNOWN lpUnk, DWORD reserved)
HRESULT WINAPI CoInitializeWOW(DWORD x, DWORD y)
static HRESULT get_ps_clsid_from_registry(const WCHAR *path, REGSAM access, CLSID *pclsid)
static GlobalOptions * impl_from_IGlobalOptions(IGlobalOptions *iface)
static struct list openDllList
static APARTMENT * apartment_construct(DWORD model)
DWORD apartment_release(struct apartment *apt)
static CRITICAL_SECTION_DEBUG critsect_debug
HRESULT COM_OpenKeyForAppIdFromCLSID(REFCLSID clsid, REGSAM access, HKEY *subkey)
HRESULT WINAPI CoCopyProxy(IUnknown *pProxy, IUnknown **ppCopy)
static HRESULT WINAPI Context_OC_GetProperty(IObjContext *iface, REFGUID propid, CPFLAGS *flags, IUnknown **punk)
HINSTANCE WINAPI CoLoadLibrary(LPOLESTR lpszLibName, BOOL bAutoFree)
static const IGlobalOptionsVtbl GlobalOptionsVtbl
static struct init_spy * get_spy_entry(struct oletls *info, unsigned int id)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstanceEx(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, COSERVERINFO *pServerInfo, ULONG cmq, MULTI_QI *pResults)
HRESULT WINAPI CoDisableCallCancellation(void *reserved)
HRESULT WINAPI CoGetContextToken(ULONG_PTR *token)
void WINAPI CoFreeAllLibraries(void)
HRESULT WINAPI CoWaitForMultipleHandles(DWORD dwFlags, DWORD dwTimeout, ULONG cHandles, LPHANDLE pHandles, LPDWORD lpdwindex)
HRESULT WINAPI CoEnableCallCancellation(void *reserved)
HRESULT WINAPI DECLSPEC_HOTPATCH CoRevokeClassObject(DWORD dwRegister)
static ULONG WINAPI Context_OC_Release(IObjContext *iface)
static void WINAPI Context_OC_Reserved6(IObjContext *iface)
HRESULT(CALLBACK * DllGetClassObjectFunc)(REFCLSID clsid, REFIID iid, LPVOID *ppv)
static HRESULT WINAPI Context_CC_ContextCallback(IContextCallback *iface, PFNCONTEXTCALL pCallback, ComCallData *param, REFIID riid, int method, IUnknown *punk)
HRESULT WINAPI CoTreatAsClass(REFCLSID clsidOld, REFCLSID clsidNew)
static ULONG WINAPI LocalServer_AddRef(IServiceProvider *iface)
static HRESULT get_inproc_class_object(APARTMENT *apt, const struct class_reg_data *regdata, REFCLSID rclsid, REFIID riid, BOOL hostifnecessary, void **ppv)
HRESULT WINAPI DECLSPEC_HOTPATCH CoInitializeEx(LPVOID lpReserved, DWORD dwCoInit)
static CRITICAL_SECTION csOpenDllList
HRESULT WINAPI CoCreateGuid(GUID *pguid)
static void revoke_registered_psclsids(void)
static void COMPOBJ_DllList_Free(void)
static HKEY get_classes_root_hkey(HKEY hkey, REGSAM access)
static BOOL COM_PeekMessage(struct apartment *apt, MSG *msg)
HRESULT WINAPI DllUnregisterServer(void)
APARTMENT * apartment_findfromoxid(OXID oxid, BOOL ref)
static APARTMENT * MainApartment
static HRESULT WINAPI GlobalOptions_Set(IGlobalOptions *iface, GLOBALOPT_PROPERTIES property, ULONG_PTR value)
BOOL actctx_get_miscstatus(const CLSID *clsid, DWORD aspect, DWORD *status)
static BOOL apartment_is_model(const APARTMENT *apt, DWORD model)
static HKEY create_classes_root_hkey(DWORD access)
static HRESULT WINAPI Context_CTI_GetCurrentApartmentType(IComThreadingInfo *iface, APTTYPE *apttype)
static ULONG WINAPI SynchronizeHandle_AddRef(ISynchronizeHandle *iface)
void WINAPI DECLSPEC_HOTPATCH CoFreeUnusedLibraries(void)
static HRESULT WINAPI GlobalOptions_QueryInterface(IGlobalOptions *iface, REFIID riid, void **ppv)
HRESULT WINAPI CoSwitchCallContext(IUnknown *pObject, IUnknown **ppOldObject)
HRESULT WINAPI DECLSPEC_HOTPATCH CLSIDFromProgID(LPCOLESTR progid, LPCLSID clsid)
HRESULT WINAPI CoGetCallContext(REFIID riid, void **ppv)
static ULONG WINAPI Context_CTI_Release(IComThreadingInfo *iface)
HRESULT WINAPI CoQueryClientBlanket(DWORD *pAuthnSvc, DWORD *pAuthzSvc, OLECHAR **pServerPrincName, DWORD *pAuthnLevel, DWORD *pImpLevel, RPC_AUTHZ_HANDLE *pPrivs, DWORD *pCapabilities)
HRESULT WINAPI CoGetObjectContext(REFIID riid, void **ppv)
HRESULT WINAPI CoGetState(IUnknown **ppv)
HRESULT WINAPI CoGetApartmentType(APTTYPE *type, APTTYPEQUALIFIER *qualifier)
HRESULT Handler_DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
static HRESULT WINAPI Context_CTI_GetCurrentThreadType(IComThreadingInfo *iface, THDTYPE *thdtype)
HRESULT WINAPI CoSetProxyBlanket(IUnknown *pProxy, DWORD AuthnSvc, DWORD AuthzSvc, OLECHAR *pServerPrincName, DWORD AuthnLevel, DWORD ImpLevel, void *pAuthInfo, DWORD Capabilities)
static void WINAPI Context_OC_Reserved7(IObjContext *iface)
static CRITICAL_SECTION_DEBUG psclsid_cs_debug
static void COMPOBJ_DllList_ReleaseRef(OpenDll *entry, BOOL free_entry)
HRESULT WINAPI CoSuspendClassObjects(void)
APARTMENT * apartment_findfromtid(DWORD tid)
static HRESULT ManualResetEvent_Construct(IUnknown *punkouter, REFIID iid, void **ppv)
HRESULT WINAPI DECLSPEC_HOTPATCH CoGetClassObject(REFCLSID rclsid, DWORD dwClsContext, COSERVERINFO *pServerInfo, REFIID iid, LPVOID *ppv)
static LONG s_COMLockCount
static void WINAPI Context_OC_Reserved3(IObjContext *iface)
HRESULT WINAPI CoRegisterPSClsid(REFIID riid, REFCLSID rclsid)
static NTSTATUS create_key(HKEY *retkey, ACCESS_MASK access, OBJECT_ATTRIBUTES *attr)
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
HRESULT WINAPI CoResumeClassObjects(void)
static CRITICAL_SECTION cs_registered_psclsid_list
void leave_apartment(struct oletls *info)
static HRESULT WINAPI ISynchronize_fnQueryInterface(ISynchronize *iface, REFIID riid, void **ppv)
HRESULT enter_apartment(struct oletls *info, DWORD model)
struct tagOpenDll OpenDll
static const ISynchronizeHandleVtbl SynchronizeHandleVtbl
HRESULT WINAPI CoImpersonateClient(void)
static ULONG WINAPI LocalServer_Release(IServiceProvider *iface)
static ULONG WINAPI SynchronizeHandle_Release(ISynchronizeHandle *iface)
static DWORD CALLBACK apartment_hostobject_thread(LPVOID p)
static HRESULT WINAPI Context_OC_QueryInterface(IObjContext *iface, REFIID riid, LPVOID *ppv)
HRESULT WINAPI CLSIDFromString(LPCOLESTR idstr, LPCLSID id)
static void WINAPI Context_OC_Reserved5(IObjContext *iface)
APARTMENT * apartment_get_current_or_mta(void)
HWND apartment_getwindow(const struct apartment *apt)
LSTATUS create_classes_key(HKEY hkey, const WCHAR *name, REGSAM access, HKEY *retkey)
static CRITICAL_SECTION csApartment
static HRESULT WINAPI LocalServer_QueryService(IServiceProvider *iface, REFGUID guid, REFIID riid, void **ppv)
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
struct tagRegisteredClass RegisteredClass
static HRESULT apartment_hostobject(struct apartment *apt, const struct host_object_params *params)
HRESULT WINAPI CLSIDFromProgIDEx(LPCOLESTR progid, LPCLSID clsid)
HRESULT WINAPI CoRegisterSurrogateEx(REFGUID guid, void *reserved)
static struct list RegisteredClassList
static ULONG Context_Release(Context *This)
HRESULT WINAPI CoRegisterChannelHook(REFGUID guidExtension, IChannelHook *pChannelHook)
HRESULT WINAPI DECLSPEC_HOTPATCH CoGetInstanceFromFile(COSERVERINFO *server_info, CLSID *rclsid, IUnknown *outer, DWORD cls_context, DWORD grfmode, OLECHAR *filename, DWORD count, MULTI_QI *results)
HRESULT WINAPI CoRevertToSelf(void)
ULONG WINAPI CoReleaseServerProcess(void)
static const IContextCallbackVtbl Context_Callback_Vtbl
static BOOL guid_from_string(LPCWSTR s, GUID *id)
static HRESULT WINAPI Context_OC_RemoveProperty(IObjContext *iface, REFGUID propid)
LSTATUS open_classes_key(HKEY hkey, const WCHAR *name, REGSAM access, HKEY *retkey)
static void unlock_init_spies(struct oletls *info)
static ULONG WINAPI Context_CC_AddRef(IContextCallback *iface)
HRESULT WINAPI CoQueryProxyBlanket(IUnknown *pProxy, DWORD *pAuthnSvc, DWORD *pAuthzSvc, OLECHAR **ppServerPrincName, DWORD *pAuthnLevel, DWORD *pImpLevel, void **ppAuthInfo, DWORD *pCapabilities)
HRESULT WINAPI CoLockObjectExternal(LPUNKNOWN pUnk, BOOL fLock, BOOL fLastUnlockReleases)
HRESULT WINAPI CoGetDefaultContext(APTTYPE type, REFIID riid, LPVOID *ppv)
HRESULT WINAPI CoInitializeSecurity(PSECURITY_DESCRIPTOR pSecDesc, LONG cAuthSvc, SOLE_AUTHENTICATION_SERVICE *asAuthSvc, void *pReserved1, DWORD dwAuthnLevel, DWORD dwImpLevel, void *pReserved2, DWORD dwCapabilities, void *pReserved3)
HRESULT WINAPI CoRevokeInitializeSpy(ULARGE_INTEGER cookie)
static const BYTE guid_conv_table[256]
static HRESULT WINAPI Context_OC_EnumContextProps(IObjContext *iface, IEnumContextProps **props)
static HRESULT WINAPI GlobalOptions_Query(IGlobalOptions *iface, GLOBALOPT_PROPERTIES property, ULONG_PTR *value)
static ULONG WINAPI Context_CC_Release(IContextCallback *iface)
static enum comclass_miscfields dvaspect_to_miscfields(DWORD aspect)
static CRITICAL_SECTION csRegisteredClassList
@ ThreadingModel_Apartment
HRESULT WINAPI StringFromCLSID(REFCLSID id, LPOLESTR *idstr)
static const WCHAR wszAptWinClass[]
static void WINAPI Context_OC_Reserved2(IObjContext *iface)
static HRESULT WINAPI Context_OC_SetProperty(IObjContext *iface, REFGUID propid, CPFLAGS flags, IUnknown *punk)
HRESULT WINAPI GlobalOptions_CreateInstance(IClassFactory *iface, IUnknown *outer, REFIID riid, void **ppv)
static HRESULT WINAPI ISynchronize_fnSignal(ISynchronize *iface)
static HRESULT clsid_from_string_reg(LPCOLESTR progid, CLSID *clsid)
HRESULT WINAPI DECLSPEC_HOTPATCH ProgIDFromCLSID(REFCLSID clsid, LPOLESTR *ppszProgID)
static const IObjContextVtbl Context_Object_Vtbl
HRESULT WINAPI CoGetCurrentLogicalThreadId(GUID *id)
static Context * impl_from_IObjContext(IObjContext *iface)
static void WINAPI Context_OC_Reserved1(IObjContext *iface)
static enum comclass_threadingmodel get_threading_model(const struct class_reg_data *data)
static CRITICAL_SECTION_DEBUG dll_cs_debug
HRESULT WINAPI CoAllowSetForegroundWindow(IUnknown *pUnk, void *pvReserved)
static HRESULT WINAPI ISynchronize_fnWait(ISynchronize *iface, DWORD dwFlags, DWORD dwMilliseconds)
static LONG s_COMServerProcessReferences
static HRESULT WINAPI SynchronizeHandle_GetHandle(ISynchronizeHandle *iface, HANDLE *ph)
static OpenDll * COMPOBJ_DllList_Get(LPCWSTR library_name)
INT WINAPI StringFromGUID2(REFGUID id, LPOLESTR str, INT cmax)
static HRESULT apartment_hostobject_in_hostapt(struct apartment *apt, BOOL multi_threaded, BOOL main_apartment, const struct class_reg_data *regdata, REFCLSID rclsid, REFIID riid, void **ppv)
HRESULT WINAPI CreateStreamOnHGlobal(HGLOBAL hGlobal, BOOL fDeleteOnRelease, LPSTREAM *ppstm)
HRESULT WINAPI CoReleaseMarshalData(IStream *pStream)
HRESULT WINAPI CoUnmarshalInterface(IStream *pStream, REFIID riid, LPVOID *ppv)
HRESULT WINAPI CoMarshalInterface(IStream *pStream, REFIID riid, IUnknown *pUnk, DWORD dwDestContext, void *pvDestContext, DWORD mshlFlags)
HRESULT WINAPI GetClassFile(LPCOLESTR filePathName, CLSID *pclsid)
HRESULT WINAPI MkParseDisplayName(LPBC pbc, LPCOLESTR szDisplayName, LPDWORD pchEaten, LPMONIKER *ppmk)
static const BOOL is_win64
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
FxPnpStateCallbackInfo * pCallback
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei GLenum type
GLint GLint GLint GLint GLint GLint y
GLuint GLuint GLsizei count
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLenum const GLfloat * params
GLenum GLuint GLenum GLsizei const GLchar * buf
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter
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
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 token
_Must_inspect_result_ typedef _Out_ PHIDP_CAPS Capabilities
VOID WINAPI CoTaskMemFree(LPVOID ptr)
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
NTSYSAPI ULONG WINAPI RtlNtStatusToDosError(NTSTATUS)
#define InterlockedExchangeAdd
#define InterlockedCompareExchangePointer
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
#define memcpy(s1, s2, n)
#define memmove(s1, s2, n)
#define ERROR_FILE_NOT_FOUND
static ATOM register_class(void)
static LPCSTR DWORD void * pvReserved
static IUnknown ** ppOldObject
static APTTYPEQUALIFIER * qualifier
static const LARGE_INTEGER llZero
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
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
interface IMessageFilter * LPMESSAGEFILTER
@ APTTYPEQUALIFIER_IMPLICIT_MTA
enum _APTTYPEQUALIFIER APTTYPEQUALIFIER
@ THDTYPE_PROCESSMESSAGES
HRESULT WINAPI CreateBindCtx(DWORD reserved, LPBC *ppbc)
const GUID IID_IPersistStorage
const GUID IID_IPersistFile
IClassFactory GlobalOptionsCF
#define IsEqualGUID(rguid1, rguid2)
#define IsEqualIID(riid1, riid2)
#define IsEqualCLSID(rclsid1, rclsid2)
static unsigned __int64 next
RPC_STATUS WINAPI UuidCreate(UUID *Uuid)
#define DECLSPEC_HOTPATCH
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
#define LIST_FOR_EACH(cursor, list)
#define LIST_FOR_EACH_SAFE(cursor, cursor2, list)
HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
IComThreadingInfo IComThreadingInfo_iface
IContextCallback IContextCallback_iface
IObjContext IObjContext_iface
IGlobalOptions IGlobalOptions_iface
IServiceProvider IServiceProvider_iface
ISynchronize ISynchronize_iface
ISynchronizeHandle ISynchronizeHandle_iface
LIST_ENTRY ProcessLocksList
LocalServer * local_server
struct comclassredirect_data * data
struct class_reg_data::@524::@525 actctx
union class_reg_data::@524 u
DWORD miscstatusthumbnail
struct class_reg_data regdata
DllCanUnloadNowFunc DllCanUnloadNow
DllGetClassObjectFunc DllGetClassObject
DWORD WINAPI WaitForMultipleObjects(IN DWORD nCount, IN CONST HANDLE *lpHandles, IN BOOL bWaitAll, IN DWORD dwMilliseconds)
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
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)
DWORD WINAPI WaitForMultipleObjectsEx(IN DWORD nCount, IN CONST HANDLE *lpHandles, IN BOOL bWaitAll, IN DWORD dwMilliseconds, IN BOOL bAlertable)
TW_UINT32 TW_UINT16 TW_UINT16 MSG
#define CONTAINING_RECORD(address, type, field)
#define STATUS_OBJECT_NAME_NOT_FOUND
static EFI_HANDLE * handles
static const WCHAR props[]
DWORD WINAPI GetLastError(void)
DWORD WINAPI GetCurrentThreadId(void)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
DWORD WINAPI GetCurrentProcessId(void)
#define LOAD_WITH_ALTERED_SEARCH_PATH
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
#define INIT_ONCE_STATIC_INIT
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD dwTimeout
#define REGDB_E_CLASSNOTREG
#define RPC_E_WRONG_THREAD
#define REGDB_E_READREGDB
#define REGDB_E_IIDNOTREG
#define REGDB_E_WRITEREGDB
#define RPC_E_CALL_CANCELED
#define RPC_S_CALLPENDING
#define CLASS_E_NOAGGREGATION
#define RPC_E_CALL_COMPLETE
#define HRESULT_FROM_WIN32(x)
#define RPC_S_UUID_LOCAL_ONLY
#define CO_S_NOTALLINTERFACES
#define CO_E_NOT_SUPPORTED
#define CLASS_E_CLASSNOTAVAILABLE
#define REGDB_E_KEYMISSING
#define RPC_E_CHANGED_MODE
#define HKEY_CLASSES_ROOT
BOOL WINAPI TranslateMessage(_In_ const MSG *)
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI GetMessageW(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT)
__analysis_noreturn void WINAPI PostQuitMessage(_In_ int)
ATOM WINAPI RegisterClassW(_In_ CONST WNDCLASSW *)
#define QS_ALLPOSTMESSAGE
DWORD WINAPI MsgWaitForMultipleObjectsEx(_In_ DWORD nCount, _In_reads_opt_(nCount) CONST HANDLE *pHandles, _In_ DWORD dwMilliseconds, _In_ DWORD dwWakeMask, _In_ DWORD dwFlags)
BOOL WINAPI PeekMessageW(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT, _In_ UINT)
BOOL WINAPI PostThreadMessageW(_In_ DWORD, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define CreateWindowW(a, b, c, d, e, f, g, h, i, j, k)
LRESULT WINAPI DispatchMessageW(_In_ const MSG *)
BOOL WINAPI UnregisterClassW(_In_ LPCWSTR, HINSTANCE)
BOOL WINAPI DestroyWindow(_In_ HWND)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)