33#define NONAMELESSUNION
81 OLEMENUGROUPWIDTHS
mgw;
107 {
'W',
'i',
'n',
'e',
'D',
'r',
'a',
'g',
'D',
'r',
'o',
'p',
'T',
'r',
'a',
'c',
'k',
'e',
'r',
'3',
'2',0};
113 {
'P',
'R',
'O',
'P',
'_',
'O',
'L',
'E',
'M',
'e',
'n',
'u',
'D',
'e',
's',
'c',
'r',
'i',
'p',
't',
'o',
'r',0};
117 {
'O',
'l',
'e',
'D',
'r',
'o',
'p',
'T',
'a',
'r',
'g',
'e',
't',
'I',
'n',
't',
'e',
'r',
'f',
'a',
'c',
'e',0};
121 {
'W',
'i',
'n',
'e',
'M',
'a',
'r',
's',
'h',
'a',
'l',
'l',
'e',
'd',
'D',
'r',
'o',
'p',
'T',
'a',
'r',
'g',
'e',
't',0};
162 TRACE(
"Returning version %d, build %d.\n",
rmm,
rup);
206 TRACE(
"() - Initializing the OLE libraries\n");
236 WARN(
"ole_inits is already 0\n");
247 TRACE(
"() - Freeing the last reference count\n");
270 FIXME(
"(0x%08x, 0x%08x),stub!\n",
x,
y);
374 TRACE(
"size %d\n", (
int)
info.RegionSize);
413 IDropTarget_AddRef(&
This->IDropTarget_iface);
440 IDropTarget_AddRef( *
target );
455 r = IDropTarget_DragEnter(
target, pDataObj, grfKeyState,
pt, pdwEffect );
456 IDropTarget_Release(
target );
471 r = IDropTarget_DragOver(
target, grfKeyState,
pt, pdwEffect );
472 IDropTarget_Release(
target );
484 r = IDropTarget_DragLeave(
target );
485 IDropTarget_Release(
target );
501 r = IDropTarget_Drop(
target, pDataObj, grfKeyState,
pt, pdwEffect );
502 IDropTarget_Release(
target );
528 return &
This->IDropTarget_iface;
569 ERR(
"COM not initialized\n");
578 ERR(
"invalid hwnd %p\n",
hwnd);
586 FIXME(
"register for another process windows is disabled\n");
612 IDropTarget_Release(wrapper);
619 IDropTarget_AddRef(pDropTarget);
650 ERR(
"invalid hwnd %p\n",
hwnd);
659 if(drop_target) IDropTarget_Release(drop_target);
680 static const WCHAR auxusertypeW[] = {
'A',
'u',
'x',
'U',
's',
'e',
'r',
'T',
'y',
'p',
'e',
'\\',
'%',
'd',0};
681 DWORD valuetype, valuelen;
682 WCHAR auxkeynameW[16];
702 if (
form != USERCLASSTYPE_FULL)
712 usertypekey = auxkey;
759 static const WCHAR trackerW[] = {
'T',
'r',
'a',
'c',
'k',
'e',
'r',
'W',
'i',
'n',
'd',
'o',
'w',0};
761 HWND hwndTrackWindow;
764 TRACE(
"(%p, %p, %08x, %p)\n", pDataObject, pDropSource, dwOKEffect, pdwEffect);
766 if (!pDataObject || !pDropSource || !pdwEffect)
782 trackerInfo.accepterHWND =
NULL;
857 FIXME(
"(%p),stub!\n", pSrcDataObject);
869 static const WCHAR miscstatusW[] = {
'M',
'i',
's',
'c',
'S',
't',
'a',
't',
'u',
's',0};
870 static const WCHAR dfmtW[] = {
'%',
'd',0};
931 IEnumOLEVERB_AddRef(iface);
967 TRACE(
"(%d, %p, %p)\n", celt, rgelt, pceltFetched);
972 for (; celt; celt--, rgelt++)
987 ERR(
"RegEnumKeyW failed with error %d\n",
res);
994 ERR(
"RegQueryValueW failed with error %d\n",
res);
1007 ERR(
"RegQueryValueW failed with error %d\n",
res);
1014 pwszMenuFlags =
wcschr(pwszOLEVERB,
',');
1022 *pwszMenuFlags =
'\0';
1024 pwszAttribs =
wcschr(pwszMenuFlags,
',');
1032 *pwszAttribs =
'\0';
1037 rgelt->lpszVerbName = pwszOLEVERB;
1038 rgelt->fuFlags =
wcstol(pwszMenuFlags,
NULL, 10);
1039 rgelt->grfAttribs =
wcstol(pwszAttribs,
NULL, 10);
1053 TRACE(
"(%d)\n", celt);
1055 This->index += celt;
1076 TRACE(
"(%p)\n", ppenum);
1104 This->hkeyVerb = hkeyVerb;
1105 *ppenum = &
This->IEnumOLEVERB_iface;
1130 static const WCHAR wszVerb[] = {
'V',
'e',
'r',
'b',0};
1142 ERR(
"failed to open Verbs key for CLSID %s with error %d\n",
1183 hres = IRunnableObject_SetContainedObject(
runnable, fContained);
1216 hres = IRunnableObject_Run(runable,
NULL);
1217 IRunnableObject_Release(runable);
1227 LPOLECLIENTSITE pClientSite,
1233 STATSTG storageInfo;
1247 hres = IStorage_Stat(pStg, &storageInfo, STATFLAG_NONAME);
1256 CLSCTX_INPROC_HANDLER|CLSCTX_INPROC_SERVER,
1284 hres = IOleObject_GetMiscStatus(pOleObject, DVASPECT_CONTENT, &
dwStatus);
1294 hres = IPersistStorage_Load(persistStorage, pStg);
1296 IPersistStorage_Release(persistStorage);
1297 persistStorage =
NULL;
1304 hres = IOleObject_SetClientSite(pOleObject, pClientSite);
1310 IOleObject_Release(pOleObject);
1319 FIXME(
"handle OLE link\n");
1320 IOleLink_Release(pOleLink);
1326 IUnknown_Release(
pUnk);
1346 TRACE(
"(%p,%p,%x)\n", pPS, pStg, fSameAsLoad);
1351 hres = IPersistStorage_GetClassID(pPS, &objectClass);
1362 hres = IPersistStorage_Save(pPS, pStg, fSameAsLoad);
1366 IStorage_Commit(pStg,
1390 hres = IRunnableObject_LockRunning(
runnable, fLock, fLastUnlockCloses);
1488 if ((*ppHook)->tid ==
tid)
1490 pHookItem = *ppHook;
1491 *ppHook = pHookItem->
next;
1494 ppHook = &(*ppHook)->
next;
1496 if (!pHookItem)
return FALSE;
1529 for (pHookItem =
hook_list; pHookItem; pHookItem = pHookItem->
next)
1531 if (
tid == pHookItem->
tid )
1560 if ( hsubmenu == hPopupMenu )
1591 UINT nPos = 0, nWidth,
i;
1609 for (
i = 0, nWidth = 0;
i < 6;
i++ )
1611 nWidth += pOleMenuDescriptor->
mgw.width[
i];
1612 if ( nPos < nWidth )
1631 HOLEMENU hOleMenu = 0;
1655 if ( !pOleMenuDescriptor )
1713 if ( pOleMenuDescriptor )
1720 WARN(
"could not retrieve hHook for current thread!\n" );
1736 HOLEMENU hOleMenu = 0;
1774 if ( !pOleMenuDescriptor )
1787 if ( pOleMenuDescriptor )
1794 WARN(
"could not retrieve hHook for current thread!\n" );
1813 HMENU hmenuCombined,
1814 LPOLEMENUGROUPWIDTHS lpMenuWidths)
1820 if ( !hmenuCombined || !lpMenuWidths )
1829 if ( !pOleMenuDescriptor )
1833 for (
i = 0;
i < 6;
i++ )
1834 pOleMenuDescriptor->
mgw.width[
i] = lpMenuWidths->width[
i];
1848 HOLEMENU hmenuDescriptor)
1850 if ( hmenuDescriptor )
1878 HWND hwndActiveObject,
1879 LPOLEINPLACEFRAME lpFrame,
1880 LPOLEINPLACEACTIVEOBJECT lpActiveObject)
1885 if ( !hwndFrame || (hOleMenu && !hwndActiveObject) )
1888 if ( lpFrame || lpActiveObject )
1890 FIXME(
"(%p, %p, %p, %p, %p), Context sensitive help filtering not implemented!\n",
1915 if ( !pOleMenuDescriptor )
1919 pOleMenuDescriptor->
hwndFrame = hwndFrame;
1923 pOleMenuDescriptor =
NULL;
1954 if(!lpMsg)
return FALSE;
1957 WARN_(accel)(
"NULL accel handle\n");
1965 if (
NULL == lpAccelTbl)
1971 WARN_(accel)(
"CopyAcceleratorTableW failed\n");
1976 TRACE_(accel)(
"hAccel=%p, cAccelEntries=%d,"
1977 "msg->hwnd=%p, msg->message=%04x, wParam=%08lx, lParam=%08lx\n",
1980 for(
i = 0;
i < cAccelEntries;
i++)
1998 TRACE_(accel)(
"found accel for virt_key %04lx (scan %04x)\n",
2004 TRACE_(accel)(
"incorrect SHIFT/CTRL/ALT-state\n");
2008 if(!(lpMsg->
lParam & 0x01000000))
2010 if((lpAccelTbl[
i].fVirt &
FALT) && (lpMsg->
lParam & 0x20000000))
2020 WARN_(accel)(
"couldn't translate accelerator key\n");
2025 if(lpwCmd) *lpwCmd = lpAccelTbl[
i].
cmd;
2036 switch (pmedium->tymed)
2040 if ( (pmedium->pUnkForRelease==0) &&
2041 (pmedium->u.hGlobal!=0) )
2047 if (pmedium->u.lpszFileName!=0)
2049 if (pmedium->pUnkForRelease==0)
2060 if (pmedium->u.pstm!=0)
2062 IStream_Release(pmedium->u.pstm);
2066 case TYMED_ISTORAGE:
2068 if (pmedium->u.pstg!=0)
2070 IStorage_Release(pmedium->u.pstg);
2076 if ( (pmedium->pUnkForRelease==0) &&
2077 (pmedium->u.hBitmap!=0) )
2083 if ( (pmedium->pUnkForRelease==0) &&
2084 (pmedium->u.hMetaFilePict!=0) )
2095 if ( (pmedium->pUnkForRelease==0) &&
2096 (pmedium->u.hEnhMetaFile!=0) )
2106 pmedium->tymed=TYMED_NULL;
2111 if (pmedium->pUnkForRelease!=0)
2113 IUnknown_Release(pmedium->pUnkForRelease);
2114 pmedium->pUnkForRelease = 0;
2148#define DRAG_TIMER_ID 1
2207 fme.dwAspect = DVASPECT_CONTENT;
2209 fme.tymed = TYMED_HGLOBAL;
2212 *pdwEffect =
SUCCEEDED(
hr) ? DROPEFFECT_COPY : DROPEFFECT_NONE;
2214 if (*pdwEffect == DROPEFFECT_NONE)
2234 fme.dwAspect = DVASPECT_CONTENT;
2236 fme.tymed = TYMED_HGLOBAL;
2242 hr = pDataObj->lpVtbl->
GetData(pDataObj, &fme, &stgm);
2245 hGlobal = stgm.DUMMYUNIONNAME.hGlobal;
2267 info->curTargetHWND = new_target;
2273 if (is_acceptfiles(new_target))
2275 dwEffect =
info->dwOKEffect;
2276 hr = DefaultDragEnter(new_target,
info->dataObject,
2277 info->dwKeyState,
info->curMousePos,
2279 dwEffect &=
info->dwOKEffect;
2283 info->accepterHWND = new_target;
2285 *
info->pdwEffect = dwEffect;
2298 if (
info->curDragTarget)
2300 *
info->pdwEffect =
info->dwOKEffect;
2301 hr = IDropTarget_DragEnter(
info->curDragTarget,
info->dataObject,
2302 info->dwKeyState,
info->curMousePos,
2304 *
info->pdwEffect &=
info->dwOKEffect;
2309 IDropTarget_Release(
info->curDragTarget );
2326 if (
info->curDragTarget)
2329 *
info->pdwEffect != DROPEFFECT_NONE)
2331 *
info->pdwEffect =
info->dwOKEffect;
2332 hr = IDropTarget_Drop(
info->curDragTarget,
info->dataObject,
info->dwKeyState,
2333 info->curMousePos,
info->pdwEffect );
2334 *
info->pdwEffect &=
info->dwOKEffect;
2341 IDropTarget_DragLeave(
info->curDragTarget );
2342 *
info->pdwEffect = DROPEFFECT_NONE;
2344 IDropTarget_Release(
info->curDragTarget );
2348 else if (
info->accepterHWND)
2351 *
info->pdwEffect != DROPEFFECT_NONE)
2353 *
info->pdwEffect =
info->dwOKEffect;
2354 hr = DefaultDrop(
info->accepterHWND,
info->dataObject,
info->dwKeyState,
2355 info->curMousePos,
info->pdwEffect);
2356 *
info->pdwEffect &=
info->dwOKEffect;
2363 *
info->pdwEffect = DROPEFFECT_NONE;
2369 *
info->pdwEffect = DROPEFFECT_NONE;
2380 *
info->pdwEffect = DROPEFFECT_NONE;
2383 *
info->pdwEffect = DROPEFFECT_NONE;
2386 hr = IDropSource_GiveFeedback(
info->dropSource, *
info->pdwEffect );
2390 if (*
info->pdwEffect & DROPEFFECT_MOVE)
2392 else if (*
info->pdwEffect & DROPEFFECT_COPY)
2394 else if (*
info->pdwEffect & DROPEFFECT_LINK)
2418 HWND hwndNewTarget = 0;
2444 trackerInfo->accepterHWND =
NULL;
2466 else if (trackerInfo->accepterHWND)
2486 BYTE keyboardState[256];
2491 if ( (keyboardState[
VK_SHIFT] & 0x80) !=0)
2497 if ( (keyboardState[
VK_MENU] & 0x80) !=0)
2576 hres = IUnknown_QueryInterface(
pUnk,
2581 hres = IViewObject_Draw(
viewobject, dwAspect, -1, 0, 0, 0, hdcDraw, (
RECTL*)
rect, 0, 0, 0);
2593 LPOLEINPLACEFRAMEINFO lpFrameInfo,
LPMSG lpmsg)
2597 TRACE(
"(%p,%p,%p)\n", lpFrame, lpFrameInfo, lpmsg);
2599 if (
IsAccelerator(lpFrameInfo->haccel,lpFrameInfo->cAccelEntries,lpmsg,&wID))
2600 return IOleInPlaceFrame_TranslateAccelerator(lpFrame,lpmsg,wID);
2613 LPFORMATETC pFormatEtc,
2614 LPOLECLIENTSITE pClientSite,
2628 hres = IStorage_SetClass(pStg, rclsid);
2636 IOleObject_GetMiscStatus(pOleObject, DVASPECT_CONTENT, &
dwStatus);
2645 TRACE(
"trying to set stg %p\n", pStg);
2646 hres = IPersistStorage_InitNew(pPS, pStg);
2648 IPersistStorage_Release(pPS);
2654 TRACE(
"trying to set clientsite %p\n", pClientSite);
2655 hres = IOleObject_SetClientSite(pOleObject, pClientSite);
2660 IOleObject_Release(pOleObject);
2662 if (((renderopt == OLERENDER_DRAW) || (renderopt == OLERENDER_FORMAT)) &&
2673 if (renderopt == OLERENDER_DRAW && !pFormatEtc) {
2677 pfe.dwAspect = DVASPECT_CONTENT;
2679 pfe.tymed = TYMED_NULL;
2680 hres = IOleCache_Cache(pOleCache, &pfe, ADVF_PRIMEFIRST, &dwConnection);
2683 hres = IOleCache_Cache(pOleCache, pFormatEtc, ADVF_PRIMEFIRST, &dwConnection);
2684 IOleCache_Release(pOleCache);
2691 IUnknown_Release(
pUnk);
2706 static const WCHAR wszAutoConvertTo[] = {
'A',
'u',
't',
'o',
'C',
'o',
'n',
'v',
'e',
'r',
't',
'T',
'o',0};
2733 static const WCHAR wszAutoConvertTo[] = {
'A',
'u',
't',
'o',
'C',
'o',
'n',
'v',
'e',
'r',
't',
'T',
'o',0};
2760 WCHAR *user_type_old, *user_type_new;
2771 hr = IStorage_Stat(pStg, &
stat, STATFLAG_NONAME);
2780 hr = IStorage_SetClass(pStg, &
clsid);
2787 user_type_new =
NULL;
2792 user_type_new =
NULL;
2799 IStorage_SetClass(pStg, &
stat.clsid);
2807 IStorage_SetClass(pStg, &
stat.clsid);
2824 TRACE(
"(%p)\n",
object);
2826 if (!
object)
return FALSE;
2831 running = IRunnableObject_IsRunning(pRunnable);
2832 IRunnableObject_Release(pRunnable);
2961 WARN(
"Bad type %d\n",
vt);
2972 TRACE(
"(%p)\n", pvar);
2980 memset(pvar, 0,
sizeof(*pvar));
3013 if (pvar->u.pStream)
3014 IStream_Release(pvar->u.pStream);
3031 if (pvar->u.pclipdata)
3051 for (
i = 0;
i < pvar->u.cabstr.cElems;
i++)
3055 for (
i = 0;
i < pvar->u.calpstr.cElems;
i++)
3059 for (
i = 0;
i < pvar->u.calpwstr.cElems;
i++)
3074 WARN(
"Invalid/unsupported type %d\n", pvar->vt);
3079 memset(pvar, 0,
sizeof(*pvar));
3087 const PROPVARIANT *pvarSrc)
3092 TRACE(
"(%p, %p vt %04x)\n", pvarDest, pvarSrc, pvarSrc->vt);
3099 *pvarDest = *pvarSrc;
3130 if (pvarDest->u.pStream)
3131 IStream_AddRef(pvarDest->u.pStream);
3135 *pvarDest->u.puuid = *pvarSrc->u.puuid;
3138 if (pvarSrc->u.pszVal)
3146 if (pvarSrc->u.pwszVal)
3155 if (pvarSrc->u.blob.pBlobData)
3157 len = pvarSrc->u.blob.cbSize;
3159 CopyMemory(pvarDest->u.blob.pBlobData, pvarSrc->u.blob.pBlobData,
len);
3166 if (pvarSrc->u.pclipdata)
3168 len = pvarSrc->u.pclipdata->cbSize -
sizeof(pvarSrc->u.pclipdata->ulClipFmt);
3170 pvarDest->u.pclipdata->cbSize = pvarSrc->u.pclipdata->cbSize;
3171 pvarDest->u.pclipdata->ulClipFmt = pvarSrc->u.pclipdata->ulClipFmt;
3173 CopyMemory(pvarDest->u.pclipdata->pClipData, pvarSrc->u.pclipdata->pClipData,
len);
3184 case VT_I1: elemSize =
sizeof(pvarSrc->u.cVal);
break;
3185 case VT_UI1: elemSize =
sizeof(pvarSrc->u.bVal);
break;
3186 case VT_I2: elemSize =
sizeof(pvarSrc->u.iVal);
break;
3187 case VT_UI2: elemSize =
sizeof(pvarSrc->u.uiVal);
break;
3188 case VT_BOOL: elemSize =
sizeof(pvarSrc->u.boolVal);
break;
3189 case VT_I4: elemSize =
sizeof(pvarSrc->u.lVal);
break;
3190 case VT_UI4: elemSize =
sizeof(pvarSrc->u.ulVal);
break;
3191 case VT_R4: elemSize =
sizeof(pvarSrc->u.fltVal);
break;
3192 case VT_R8: elemSize =
sizeof(pvarSrc->u.dblVal);
break;
3193 case VT_ERROR: elemSize =
sizeof(pvarSrc->u.scode);
break;
3194 case VT_I8: elemSize =
sizeof(pvarSrc->u.hVal);
break;
3195 case VT_UI8: elemSize =
sizeof(pvarSrc->u.uhVal);
break;
3196 case VT_CY: elemSize =
sizeof(pvarSrc->u.cyVal);
break;
3197 case VT_DATE: elemSize =
sizeof(pvarSrc->u.date);
break;
3198 case VT_FILETIME: elemSize =
sizeof(pvarSrc->u.filetime);
break;
3199 case VT_CLSID: elemSize =
sizeof(*pvarSrc->u.puuid);
break;
3200 case VT_CF: elemSize =
sizeof(*pvarSrc->u.pclipdata);
break;
3201 case VT_BSTR: elemSize =
sizeof(pvarSrc->u.bstrVal);
break;
3202 case VT_LPSTR: elemSize =
sizeof(pvarSrc->u.pszVal);
break;
3203 case VT_LPWSTR: elemSize =
sizeof(pvarSrc->u.pwszVal);
break;
3204 case VT_VARIANT: elemSize =
sizeof(*pvarSrc->u.pvarVal);
break;
3210 len = pvarSrc->u.capropvar.cElems;
3214 for (
i = 0;
i <
len;
i++)
3215 PropVariantCopy(&pvarDest->u.capropvar.pElems[
i], &pvarSrc->u.capropvar.pElems[
i]);
3219 FIXME(
"Copy clipformats\n");
3223 for (
i = 0;
i <
len;
i++)
3229 for (
i = 0;
i <
len;
i++)
3231 strLen =
lstrlenA(pvarSrc->u.calpstr.pElems[
i]) + 1;
3233 memcpy(pvarDest->u.calpstr.pElems[
i],
3234 pvarSrc->u.calpstr.pElems[
i], strLen);
3240 for (
i = 0;
i <
len;
i++)
3242 strLen = (
lstrlenW(pvarSrc->u.calpwstr.pElems[
i]) + 1) *
3245 memcpy(pvarDest->u.calpstr.pElems[
i],
3246 pvarSrc->u.calpstr.pElems[
i], strLen);
3250 CopyMemory(pvarDest->u.capropvar.pElems, pvarSrc->u.capropvar.pElems,
len * elemSize);
3254 pvarDest->u.uhVal.QuadPart = 0;
3255 return SafeArrayCopy(pvarSrc->u.parray, &pvarDest->u.parray);
3258 WARN(
"Invalid/unsupported type %d\n", pvarSrc->vt);
3268 PROPVARIANT *rgvars)
3272 TRACE(
"(%u, %p)\n", cVariants, rgvars);
3277 for(
i = 0;
i < cVariants;
i++)
#define DECLSPEC_HOTPATCH
ACPI_SIZE strlen(const char *String)
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define RegCloseKey(hKey)
static APARTMENT * COM_CurrentApt(void)
static struct oletls * COM_CurrentInfo(void)
LONG WINAPI RegQueryInfoKeyW(HKEY hKey, LPWSTR lpClass, LPDWORD lpcClass, LPDWORD lpReserved, LPDWORD lpcSubKeys, LPDWORD lpcMaxSubKeyLen, LPDWORD lpcMaxClassLen, LPDWORD lpcValues, LPDWORD lpcMaxValueNameLen, LPDWORD lpcMaxValueLen, LPDWORD lpcbSecurityDescriptor, PFILETIME lpftLastWriteTime)
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)
LONG WINAPI RegEnumKeyW(HKEY hKey, DWORD dwIndex, LPWSTR lpName, DWORD cbName)
#define INVALID_HANDLE_VALUE
#define CreateFileMappingW(a, b, c, d, e, f)
#define GetCurrentProcess()
#define ERROR_NO_MORE_ITEMS
#define HeapFree(x, y, z)
#define WINE_DECLARE_DEBUG_CHANNEL(x)
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
BOOL WINAPI DuplicateHandle(IN HANDLE hSourceProcessHandle, IN HANDLE hSourceHandle, IN HANDLE hTargetProcessHandle, OUT LPHANDLE lpTargetHandle, IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN DWORD dwOptions)
HANDLE WINAPI OpenProcess(IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN DWORD dwProcessId)
static REFPROPVARIANT PROPVAR_CHANGE_FLAGS VARTYPE vt
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
HRESULT COM_OpenKeyForCLSID(REFCLSID clsid, LPCWSTR keyname, REGSAM access, HKEY *subkey)
HRESULT WINAPI DECLSPEC_HOTPATCH CoInitializeEx(LPVOID lpReserved, DWORD dwCoInit)
BOOL actctx_get_miscstatus(const CLSID *clsid, DWORD aspect, DWORD *status)
HRESULT WINAPI CLSIDFromString(LPCOLESTR idstr, LPCLSID id)
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
LSTATUS open_classes_key(HKEY hkey, const WCHAR *name, REGSAM access, HKEY *retkey)
HRESULT WINAPI CoLockObjectExternal(LPUNKNOWN pUnk, BOOL fLock, BOOL fLastUnlockReleases)
INT WINAPI StringFromGUID2(REFGUID id, LPOLESTR str, INT cmax)
HRESULT WINAPI OleCreateDefaultHandler(REFCLSID clsid, LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj)
HRESULT WINAPI GetHGlobalFromStream(IStream *pstm, HGLOBAL *phglobal)
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 OleSetAutoConvert(REFCLSID clsidOld, REFCLSID clsidNew)
static IDropTarget * WrapDropTarget(HWND hwnd)
HRESULT WINAPI OleRegGetUserType(REFCLSID clsid, DWORD form, LPOLESTR *usertype)
HRESULT WINAPI DECLSPEC_HOTPATCH OleInitialize(LPVOID reserved)
static ULONG WINAPI DropTargetWrapper_Release(IDropTarget *iface)
HRESULT WINAPI PropVariantClear(PROPVARIANT *pvar)
void WINAPI ReleaseStgMedium(STGMEDIUM *pmedium)
struct tagTrackerWindowInfo TrackerWindowInfo
static HRESULT give_feedback(TrackerWindowInfo *info)
static void drag_enter(TrackerWindowInfo *info, HWND new_target)
static IDropTarget * get_droptarget_pointer(HWND hwnd)
static BOOL OLEMenu_InstallHooks(DWORD tid)
HRESULT WINAPI RegisterDragDrop(HWND hwnd, LPDROPTARGET pDropTarget)
HRESULT WINAPI DECLSPEC_HOTPATCH OleRun(LPUNKNOWN pUnknown)
static HRESULT WINAPI EnumOLEVERB_QueryInterface(IEnumOLEVERB *iface, REFIID riid, void **ppv)
static const WCHAR prop_oledroptarget[]
static BOOL OLEMenu_FindMainMenuIndex(HMENU hMainMenu, HMENU hPopupMenu, UINT *pnPos)
static ULONG WINAPI EnumOLEVERB_AddRef(IEnumOLEVERB *iface)
static LONG OLE_moduleLockCount
static HRESULT PROPVARIANT_ValidateType(VARTYPE vt)
static HRESULT WINAPI DropTargetWrapper_DragLeave(IDropTarget *iface)
HRESULT WINAPI OleLockRunning(LPUNKNOWN pUnknown, BOOL fLock, BOOL fLastUnlockCloses)
HRESULT WINAPI OleSetContainedObject(LPUNKNOWN pUnknown, BOOL fContained)
static LRESULT CALLBACK OLEMenu_CallWndProc(INT code, WPARAM wParam, LPARAM lParam)
static const IEnumOLEVERBVtbl EnumOLEVERB_VTable
static HRESULT WINAPI DropTargetWrapper_DragEnter(IDropTarget *iface, IDataObject *pDataObj, DWORD grfKeyState, POINTL pt, DWORD *pdwEffect)
static void OLE_FreeClipDataArray(ULONG count, CLIPDATA *pClipDataArray)
static HANDLE get_droptarget_handle(HWND hwnd)
static OleMenuHookItem * OLEMenu_IsHookInstalled(DWORD tid)
static HRESULT WINAPI DropTargetWrapper_DragOver(IDropTarget *iface, DWORD grfKeyState, POINTL pt, DWORD *pdwEffect)
HRESULT WINAPI DoDragDrop(IDataObject *pDataObject, IDropSource *pDropSource, DWORD dwOKEffect, DWORD *pdwEffect)
static HRESULT WINAPI EnumOLEVERB_Next(IEnumOLEVERB *iface, ULONG celt, LPOLEVERB rgelt, ULONG *pceltFetched)
static HRESULT WINAPI DropTargetWrapper_Drop(IDropTarget *iface, IDataObject *pDataObj, DWORD grfKeyState, POINTL pt, DWORD *pdwEffect)
void OLEClipbrd_Initialize(void)
static void OLEDD_TrackStateChange(TrackerWindowInfo *trackerInfo)
HRESULT WINAPI PropVariantCopy(PROPVARIANT *pvarDest, const PROPVARIANT *pvarSrc)
BOOL WINAPI IsAccelerator(HACCEL hAccel, int cAccelEntries, LPMSG lpMsg, WORD *lpwCmd)
static ULONG WINAPI EnumOLEVERB_Release(IEnumOLEVERB *iface)
static HRESULT get_target_from_wrapper(IDropTarget *wrapper, IDropTarget **target)
static HRESULT WINAPI EnumOLEVERB_Reset(IEnumOLEVERB *iface)
static const IDropTargetVtbl DropTargetWrapperVTbl
static LRESULT CALLBACK OLEMenu_GetMsgProc(INT code, WPARAM wParam, LPARAM lParam)
static void drag_end(TrackerWindowInfo *info)
HRESULT WINAPI OleDraw(IUnknown *pUnk, DWORD dwAspect, HDC hdcDraw, LPCRECT rect)
static ULONG WINAPI DropTargetWrapper_AddRef(IDropTarget *iface)
static HRESULT create_stream_from_map(HANDLE map, IStream **stream)
static void OLEUTL_ReadRegistryDWORDValue(HKEY regKey, DWORD *pdwValue)
static HANDLE get_droptarget_local_handle(HWND hwnd)
static HRESULT EnumOLEVERB_Construct(HKEY hkeyVerb, ULONG index, IEnumOLEVERB **ppenum)
void WINAPI DECLSPEC_HOTPATCH OleUninitialize(void)
static HRESULT create_map_from_stream(IStream *stream, HANDLE *map)
static HRESULT WINAPI EnumOLEVERB_Clone(IEnumOLEVERB *iface, IEnumOLEVERB **ppenum)
struct tagOleMenuDescriptor OleMenuDescriptor
BOOL WINAPI OleIsRunning(LPOLEOBJECT object)
DWORD WINAPI OleBuildVersion(void)
static const WCHAR emptyW[]
HRESULT WINAPI OleDestroyMenuDescriptor(HOLEMENU hmenuDescriptor)
struct tagOleMenuHookItem OleMenuHookItem
HRESULT WINAPI OleRegGetMiscStatus(REFCLSID clsid, DWORD dwAspect, DWORD *pdwStatus)
HOLEMENU WINAPI OleCreateMenuDescriptor(HMENU hmenuCombined, LPOLEMENUGROUPWIDTHS lpMenuWidths)
static void OLEMenu_UnInitialize(void)
static const WCHAR prop_marshalleddroptarget[]
static OleMenuHookItem * hook_list
HRESULT WINAPI OleSave(LPPERSISTSTORAGE pPS, LPSTORAGE pStg, BOOL fSameAsLoad)
static LRESULT WINAPI OLEDD_DragTrackerWindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
void WINAPI PropSysFreeString(LPOLESTR str)
HRESULT WINAPI OleQueryLinkFromData(IDataObject *pSrcDataObject)
static void OLEMenu_Initialize(void)
static DropTargetWrapper * impl_from_IDropTarget(IDropTarget *iface)
HRESULT WINAPI OleDoAutoConvert(LPSTORAGE pStg, LPCLSID pClsidNew)
HRESULT WINAPI OleLoad(LPSTORAGE pStg, REFIID riid, LPOLECLIENTSITE pClientSite, LPVOID *ppvObj)
static HRESULT WINAPI EnumOLEVERB_Skip(IEnumOLEVERB *iface, ULONG celt)
static BOOL OLEMenu_SetIsServerMenu(HMENU hmenu, OleMenuDescriptor *pOleMenuDescriptor)
HRESULT WINAPI OleCreate(REFCLSID rclsid, REFIID riid, DWORD renderopt, LPFORMATETC pFormatEtc, LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID *ppvObj)
HRESULT WINAPI OleRegEnumVerbs(REFCLSID clsid, LPENUMOLEVERB *ppenum)
HRESULT WINAPI OleSetMenuDescriptor(HOLEMENU hOleMenu, HWND hwndFrame, HWND hwndActiveObject, LPOLEINPLACEFRAME lpFrame, LPOLEINPLACEACTIVEOBJECT lpActiveObject)
HRESULT WINAPI OleNoteObjectVisible(LPUNKNOWN pUnknown, BOOL bVisible)
HRESULT WINAPI OleTranslateAccelerator(LPOLEINPLACEFRAME lpFrame, LPOLEINPLACEFRAMEINFO lpFrameInfo, LPMSG lpmsg)
static const WCHAR prop_olemenuW[]
static void OLEDD_Initialize(void)
static BOOL is_droptarget(HWND hwnd)
BOOL WINAPI DllDebugObjectRPCHook(BOOL b, void *dummy)
static HRESULT WINAPI DropTargetWrapper_QueryInterface(IDropTarget *iface, REFIID riid, void **ppvObject)
HRESULT WINAPI FreePropVariantArray(ULONG cVariants, PROPVARIANT *rgvars)
static DWORD OLEDD_GetButtonState(void)
HRESULT WINAPI RevokeDragDrop(HWND hwnd)
static EnumOLEVERB * impl_from_IEnumOLEVERB(IEnumOLEVERB *iface)
HRESULT WINAPI OleInitializeWOW(DWORD x, DWORD y)
void OLEClipbrd_UnInitialize(void)
static BOOL OLEMenu_UnInstallHooks(DWORD tid)
static const WCHAR OLEDD_DRAGTRACKERCLASS[]
HRESULT WINAPI OleGetAutoConvert(REFCLSID clsidOld, LPCLSID pClsidNew)
BSTR WINAPI PropSysAllocString(LPCOLESTR str)
HRESULT WINAPI ReadFmtUserTypeStg(LPSTORAGE pstg, CLIPFORMAT *pcf, LPOLESTR *lplpszUserType)
HRESULT WINAPI WriteClassStg(IStorage *pStg, REFCLSID rclsid)
HRESULT WINAPI WriteFmtUserTypeStg(LPSTORAGE pstg, CLIPFORMAT cf, LPOLESTR lpszUserType)
HRESULT WINAPI SetConvertStg(IStorage *storage, BOOL convert)
HRESULT WINAPI SafeArrayCopy(SAFEARRAY *psa, SAFEARRAY **ppsaOut)
HRESULT WINAPI SafeArrayDestroy(SAFEARRAY *psa)
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
GLuint GLuint GLsizei count
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLdouble GLdouble GLdouble r
GLboolean GLboolean GLboolean b
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
LPVOID NTAPI GlobalLock(HGLOBAL hMem)
HGLOBAL NTAPI GlobalFree(HGLOBAL hMem)
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
HGLOBAL NTAPI GlobalAlloc(UINT uFlags, SIZE_T dwBytes)
SIZE_T NTAPI GlobalSize(HGLOBAL hMem)
VOID WINAPI CoTaskMemFree(LPVOID ptr)
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
_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)
#define PROCESS_DUP_HANDLE
HRESULT GetData([in, unique] FORMATETC *pformatetcIn, [out] STGMEDIUM *pmedium)
HRESULT QueryGetData([in, unique] FORMATETC *pformatetc)
int WINAPI lstrlenA(LPCSTR lpString)
#define memcpy(s1, s2, n)
static IViewObject viewobject
static IRunnableObject * runnable
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
@ COINIT_APARTMENTTHREADED
interface IStorage * LPSTORAGE
interface IPersistStorage * LPPERSISTSTORAGE
BSTR WINAPI SysAllocString(LPCOLESTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
const GUID IID_IViewObject
const GUID IID_IRunnableObject
const GUID IID_IPersistStorage
const GUID IID_IOleObject
const GUID IID_IEnumOLEVERB
#define WS_EX_ACCEPTFILES
#define IsEqualIID(riid1, riid2)
static const WCHAR miscstatusW[]
IDropTarget IDropTarget_iface
IDropTarget * curDragTarget
TW_UINT32 TW_UINT16 TW_UINT16 MSG
#define CONTAINING_RECORD(address, type, field)
SIZE_T NTAPI VirtualQuery(IN LPCVOID lpAddress, OUT PMEMORY_BASIC_INFORMATION lpBuffer, IN SIZE_T dwLength)
DWORD WINAPI GetLastError(void)
DWORD WINAPI GetCurrentThreadId(void)
DWORD WINAPI GetCurrentProcessId(void)
DWORD WINAPI GetWindowThreadProcessId(HWND hWnd, PDWORD lpdwProcessId)
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
_In_ ULONG_PTR _In_ ULONG _Out_ ULONG_PTR * pid
#define REGDB_E_CLASSNOTREG
#define DRAGDROP_E_ALREADYREGISTERED
#define DRAGDROP_S_USEDEFAULTCURSORS
#define DISP_E_BADVARTYPE
#define DRAGDROP_E_NOTREGISTERED
#define DRAGDROP_E_INVALIDHWND
#define REGDB_E_READREGDB
#define REGDB_E_WRITEREGDB
#define DRAGDROP_S_CANCEL
#define STG_E_INVALIDPARAMETER
#define HRESULT_FROM_WIN32(x)
#define OLEOBJ_E_INVALIDVERB
#define REGDB_E_KEYMISSING
#define DV_E_NOIVIEWOBJECT
BOOL WINAPI DeleteMetaFile(_In_ HMETAFILE)
BOOL WINAPI DeleteEnhMetaFile(_In_opt_ HENHMETAFILE)
struct tagDRAWITEMSTRUCT * LPDRAWITEMSTRUCT
HWND WINAPI SetCapture(_In_ HWND hWnd)
BOOL WINAPI IsWindow(_In_opt_ HWND)
HANDLE WINAPI RemovePropW(_In_ HWND, _In_ LPCWSTR)
BOOL WINAPI ReleaseCapture(void)
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
int WINAPI GetMenuItemCount(_In_opt_ HMENU)
BOOL WINAPI GetMessageW(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT)
BOOL WINAPI PostMessageW(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
HHOOK WINAPI SetWindowsHookExW(_In_ int, _In_ HOOKPROC, _In_opt_ HINSTANCE, _In_ DWORD)
__analysis_noreturn void WINAPI PostQuitMessage(_In_ int)
struct tagCREATESTRUCTA * LPCREATESTRUCTA
ATOM WINAPI RegisterClassW(_In_ CONST WNDCLASSW *)
int WINAPI CopyAcceleratorTableW(_In_ HACCEL hAccelSrc, _Out_writes_to_opt_(cAccelEntries, return) LPACCEL lpAccelDst, _In_ int cAccelEntries)
HCURSOR WINAPI SetCursor(_In_opt_ HCURSOR)
#define GetWindowLongPtrA
_Check_return_ BOOL WINAPI GetKeyboardState(_Out_writes_(256) PBYTE lpKeyState)
HCURSOR WINAPI LoadCursorW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
UINT_PTR WINAPI SetTimer(_In_opt_ HWND, _In_ UINT_PTR, _In_ UINT, _In_opt_ TIMERPROC)
struct tagCWPSTRUCT * LPCWPSTRUCT
BOOL WINAPI IsWindowUnicode(_In_ HWND)
HMENU WINAPI GetSubMenu(_In_ HMENU, _In_ int)
BOOL WINAPI UnhookWindowsHookEx(_In_ HHOOK)
BOOL WINAPI SetPropW(_In_ HWND, _In_ LPCWSTR, _In_opt_ HANDLE)
#define CreateWindowW(a, b, c, d, e, f, g, h, i, j, k)
HWND WINAPI GetParent(_In_ HWND)
HANDLE WINAPI GetPropW(_In_ HWND, _In_ LPCWSTR)
LRESULT WINAPI CallNextHookEx(_In_opt_ HHOOK, _In_ int, _In_ WPARAM, _In_ LPARAM)
LRESULT WINAPI DispatchMessageW(_In_ const MSG *)
HWND WINAPI WindowFromPoint(_In_ POINT)
#define MAKEINTRESOURCEW(i)
BOOL WINAPI KillTimer(_In_opt_ HWND, _In_ UINT_PTR)
#define SetWindowLongPtrW
BOOL WINAPI DestroyWindow(_In_ HWND)
BOOL WINAPI PostMessageA(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
SHORT WINAPI GetKeyState(_In_ int)
#define DUPLICATE_SAME_ACCESS