81 OLEMENUGROUPWIDTHS
mgw;
155 TRACE(
"Returning version %d, build %d.\n",
rmm,
rup);
199 TRACE(
"() - Initializing the OLE libraries\n");
224 WARN(
"ole_inits is already 0\n");
235 TRACE(
"() - Freeing the last reference count\n");
259 FIXME(
"%#lx, %#lx stub!\n",
x,
y);
364 TRACE(
"size %d\n", (
int)
info.RegionSize);
403 IDropTarget_AddRef(&
This->IDropTarget_iface);
404 *ppvObject = &
This->IDropTarget_iface;
430 IDropTarget_AddRef( *
target );
445 r = IDropTarget_DragEnter(
target, pDataObj, grfKeyState,
pt, pdwEffect );
446 IDropTarget_Release(
target );
461 r = IDropTarget_DragOver(
target, grfKeyState,
pt, pdwEffect );
462 IDropTarget_Release(
target );
474 r = IDropTarget_DragLeave(
target );
475 IDropTarget_Release(
target );
491 r = IDropTarget_Drop(
target, pDataObj, grfKeyState,
pt, pdwEffect );
492 IDropTarget_Release(
target );
518 return &
This->IDropTarget_iface;
559 ERR(
"COM not initialized\n");
568 ERR(
"invalid hwnd %p\n",
hwnd);
576 FIXME(
"register for another process windows is disabled\n");
602 IDropTarget_Release(wrapper);
609 IDropTarget_AddRef(pDropTarget);
640 ERR(
"invalid hwnd %p\n",
hwnd);
649 if(drop_target) IDropTarget_Release(drop_target);
670 DWORD valuetype, valuelen;
671 WCHAR auxkeynameW[16];
691 if (
form != USERCLASSTYPE_FULL)
701 usertypekey = auxkey;
744 HWND hwndTrackWindow;
747 TRACE(
"%p, %p, %#lx, %p.\n", pDataObject, pDropSource, dwOKEffect, pdwEffect);
749 if (!pDataObject || !pDropSource || !pdwEffect)
766 trackerInfo.accepterHWND =
NULL;
841 FIXME(
"(%p),stub!\n", pSrcDataObject);
913 IEnumOLEVERB_AddRef(iface);
949 TRACE(
"%p, %lu, %p, %p.\n", iface, celt, rgelt, pceltFetched);
954 for (; celt; celt--, rgelt++)
969 ERR(
"RegEnumKeyW failed with error %ld\n",
res);
976 ERR(
"RegQueryValueW failed with error %ld\n",
res);
989 ERR(
"RegQueryValueW failed with error %ld\n",
res);
996 pwszMenuFlags =
wcschr(pwszOLEVERB,
',');
1004 *pwszMenuFlags =
'\0';
1006 pwszAttribs =
wcschr(pwszMenuFlags,
',');
1014 *pwszAttribs =
'\0';
1019 rgelt->lpszVerbName = pwszOLEVERB;
1020 rgelt->fuFlags =
wcstol(pwszMenuFlags,
NULL, 10);
1021 rgelt->grfAttribs =
wcstol(pwszAttribs,
NULL, 10);
1035 TRACE(
"%p, %lu.\n", iface, celt);
1037 This->index += celt;
1058 TRACE(
"(%p)\n", ppenum);
1086 This->hkeyVerb = hkeyVerb;
1087 *ppenum = &
This->IEnumOLEVERB_iface;
1123 ERR(
"failed to open Verbs key for CLSID %s with error %ld\n",
1164 hres = IRunnableObject_SetContainedObject(
runnable, fContained);
1197 hres = IRunnableObject_Run(runable,
NULL);
1198 IRunnableObject_Release(runable);
1208 LPOLECLIENTSITE pClientSite,
1214 STATSTG storageInfo;
1228 hres = IStorage_Stat(pStg, &storageInfo, STATFLAG_NONAME);
1237 CLSCTX_INPROC_HANDLER|CLSCTX_INPROC_SERVER,
1265 hres = IOleObject_GetMiscStatus(pOleObject, DVASPECT_CONTENT, &
dwStatus);
1275 hres = IPersistStorage_Load(persistStorage, pStg);
1277 IPersistStorage_Release(persistStorage);
1278 persistStorage =
NULL;
1285 hres = IOleObject_SetClientSite(pOleObject, pClientSite);
1291 IOleObject_Release(pOleObject);
1300 FIXME(
"handle OLE link\n");
1301 IOleLink_Release(pOleLink);
1307 IUnknown_Release(
pUnk);
1327 TRACE(
"(%p,%p,%x)\n", pPS, pStg, fSameAsLoad);
1332 hres = IPersistStorage_GetClassID(pPS, &objectClass);
1343 hres = IPersistStorage_Save(pPS, pStg, fSameAsLoad);
1347 IStorage_Commit(pStg,
1371 hres = IRunnableObject_LockRunning(
runnable, fLock, fLastUnlockCloses);
1469 if ((*ppHook)->tid ==
tid)
1471 pHookItem = *ppHook;
1472 *ppHook = pHookItem->
next;
1475 ppHook = &(*ppHook)->
next;
1477 if (!pHookItem)
return FALSE;
1510 for (pHookItem =
hook_list; pHookItem; pHookItem = pHookItem->
next)
1512 if (
tid == pHookItem->
tid )
1541 if ( hsubmenu == hPopupMenu )
1572 UINT nPos = 0, nWidth,
i;
1590 for (
i = 0, nWidth = 0;
i < 6;
i++ )
1592 nWidth += pOleMenuDescriptor->
mgw.width[
i];
1593 if ( nPos < nWidth )
1612 HOLEMENU hOleMenu = 0;
1636 if ( !pOleMenuDescriptor )
1694 if ( pOleMenuDescriptor )
1701 WARN(
"could not retrieve hHook for current thread!\n" );
1717 HOLEMENU hOleMenu = 0;
1755 if ( !pOleMenuDescriptor )
1768 if ( pOleMenuDescriptor )
1775 WARN(
"could not retrieve hHook for current thread!\n" );
1794 HMENU hmenuCombined,
1795 LPOLEMENUGROUPWIDTHS lpMenuWidths)
1801 if ( !hmenuCombined || !lpMenuWidths )
1810 if ( !pOleMenuDescriptor )
1814 for (
i = 0;
i < 6;
i++ )
1815 pOleMenuDescriptor->
mgw.width[
i] = lpMenuWidths->width[
i];
1829 HOLEMENU hmenuDescriptor)
1831 if ( hmenuDescriptor )
1859 HWND hwndActiveObject,
1860 LPOLEINPLACEFRAME lpFrame,
1861 LPOLEINPLACEACTIVEOBJECT lpActiveObject)
1866 if ( !hwndFrame || (hOleMenu && !hwndActiveObject) )
1869 if ( lpFrame || lpActiveObject )
1871 FIXME(
"(%p, %p, %p, %p, %p), Context sensitive help filtering not implemented!\n",
1896 if ( !pOleMenuDescriptor )
1900 pOleMenuDescriptor->
hwndFrame = hwndFrame;
1904 pOleMenuDescriptor =
NULL;
1935 if(!lpMsg)
return FALSE;
1938 WARN_(accel)(
"NULL accel handle\n");
1946 if (
NULL == lpAccelTbl)
1952 WARN_(accel)(
"CopyAcceleratorTableW failed\n");
1957 TRACE_(accel)(
"hAccel=%p, cAccelEntries=%d,"
1958 "msg->hwnd=%p, msg->message=%04x, wParam=%#Ix, lParam=%#Ix\n",
1961 for(
i = 0;
i < cAccelEntries;
i++)
1979 TRACE_(accel)(
"found accel for virt_key %Ix (scan %04x)\n",
1985 TRACE_(accel)(
"incorrect SHIFT/CTRL/ALT-state\n");
1989 if(!(lpMsg->
lParam & 0x01000000))
1991 if((lpAccelTbl[
i].fVirt &
FALT) && (lpMsg->
lParam & 0x20000000))
2001 WARN_(accel)(
"couldn't translate accelerator key\n");
2006 if(lpwCmd) *lpwCmd = lpAccelTbl[
i].
cmd;
2017 if (!pmedium)
return;
2019 switch (pmedium->tymed)
2023 if ( (pmedium->pUnkForRelease==0) &&
2024 (pmedium->hGlobal!=0) )
2030 if (pmedium->lpszFileName!=0)
2032 if (pmedium->pUnkForRelease==0)
2043 if (pmedium->pstm!=0)
2045 IStream_Release(pmedium->pstm);
2049 case TYMED_ISTORAGE:
2051 if (pmedium->pstg!=0)
2053 IStorage_Release(pmedium->pstg);
2059 if ( (pmedium->pUnkForRelease==0) &&
2060 (pmedium->hBitmap!=0) )
2066 if ( (pmedium->pUnkForRelease==0) &&
2067 (pmedium->hMetaFilePict!=0) )
2078 if ( (pmedium->pUnkForRelease==0) &&
2079 (pmedium->hEnhMetaFile!=0) )
2089 pmedium->tymed=TYMED_NULL;
2094 if (pmedium->pUnkForRelease!=0)
2096 IUnknown_Release(pmedium->pUnkForRelease);
2097 pmedium->pUnkForRelease = 0;
2131#define DRAG_TIMER_ID 1
2190 fme.dwAspect = DVASPECT_CONTENT;
2192 fme.tymed = TYMED_HGLOBAL;
2195 *pdwEffect =
SUCCEEDED(
hr) ? DROPEFFECT_COPY : DROPEFFECT_NONE;
2197 if (*pdwEffect == DROPEFFECT_NONE)
2217 fme.dwAspect = DVASPECT_CONTENT;
2219 fme.tymed = TYMED_HGLOBAL;
2225 hr = pDataObj->lpVtbl->
GetData(pDataObj, &fme, &stgm);
2228 hGlobal = stgm.hGlobal;
2250 info->curTargetHWND = new_target;
2256 if (is_acceptfiles(new_target))
2258 dwEffect =
info->dwOKEffect;
2259 hr = DefaultDragEnter(new_target,
info->dataObject,
2260 info->dwKeyState,
info->curMousePos,
2262 dwEffect &=
info->dwOKEffect;
2266 info->accepterHWND = new_target;
2268 *
info->pdwEffect = dwEffect;
2281 if (
info->curDragTarget)
2283 *
info->pdwEffect =
info->dwOKEffect;
2284 hr = IDropTarget_DragEnter(
info->curDragTarget,
info->dataObject,
2285 info->dwKeyState,
info->curMousePos,
2287 *
info->pdwEffect &=
info->dwOKEffect;
2292 IDropTarget_Release(
info->curDragTarget );
2309 if (
info->curDragTarget)
2312 *
info->pdwEffect != DROPEFFECT_NONE)
2314 *
info->pdwEffect =
info->dwOKEffect;
2315 hr = IDropTarget_Drop(
info->curDragTarget,
info->dataObject,
info->dwKeyState,
2316 info->curMousePos,
info->pdwEffect );
2317 *
info->pdwEffect &=
info->dwOKEffect;
2324 IDropTarget_DragLeave(
info->curDragTarget );
2325 *
info->pdwEffect = DROPEFFECT_NONE;
2327 IDropTarget_Release(
info->curDragTarget );
2331 else if (
info->accepterHWND)
2334 *
info->pdwEffect != DROPEFFECT_NONE)
2336 *
info->pdwEffect =
info->dwOKEffect;
2337 hr = DefaultDrop(
info->accepterHWND,
info->dataObject,
info->dwKeyState,
2338 info->curMousePos,
info->pdwEffect);
2339 *
info->pdwEffect &=
info->dwOKEffect;
2346 *
info->pdwEffect = DROPEFFECT_NONE;
2352 *
info->pdwEffect = DROPEFFECT_NONE;
2363 *
info->pdwEffect = DROPEFFECT_NONE;
2366 *
info->pdwEffect = DROPEFFECT_NONE;
2369 hr = IDropSource_GiveFeedback(
info->dropSource, *
info->pdwEffect );
2373 if (*
info->pdwEffect & DROPEFFECT_MOVE)
2375 else if (*
info->pdwEffect & DROPEFFECT_COPY)
2377 else if (*
info->pdwEffect & DROPEFFECT_LINK)
2401 HWND hwndNewTarget = 0;
2434 trackerInfo->accepterHWND =
NULL;
2456 else if (trackerInfo->accepterHWND)
2478 BYTE keyboardState[256];
2483 if ( (keyboardState[
VK_SHIFT] & 0x80) !=0)
2489 if ( (keyboardState[
VK_MENU] & 0x80) !=0)
2563 hres = IUnknown_QueryInterface(
pUnk,
2568 hres = IViewObject_Draw(
viewobject, dwAspect, -1, 0, 0, 0, hdcDraw, (
RECTL*)
rect, 0, 0, 0);
2580 LPOLEINPLACEFRAMEINFO lpFrameInfo,
LPMSG lpmsg)
2584 TRACE(
"(%p,%p,%p)\n", lpFrame, lpFrameInfo, lpmsg);
2586 if (
IsAccelerator(lpFrameInfo->haccel,lpFrameInfo->cAccelEntries,lpmsg,&wID))
2587 return IOleInPlaceFrame_TranslateAccelerator(lpFrame,lpmsg,wID);
2600 LPFORMATETC pFormatEtc,
2601 LPOLECLIENTSITE pClientSite,
2615 hres = IStorage_SetClass(pStg, rclsid);
2623 IOleObject_GetMiscStatus(pOleObject, DVASPECT_CONTENT, &
dwStatus);
2632 TRACE(
"trying to set stg %p\n", pStg);
2633 hres = IPersistStorage_InitNew(pPS, pStg);
2635 IPersistStorage_Release(pPS);
2641 TRACE(
"trying to set clientsite %p\n", pClientSite);
2642 hres = IOleObject_SetClientSite(pOleObject, pClientSite);
2647 IOleObject_Release(pOleObject);
2649 if (((renderopt == OLERENDER_DRAW) || (renderopt == OLERENDER_FORMAT)) &&
2660 if (renderopt == OLERENDER_DRAW && !pFormatEtc) {
2664 pfe.dwAspect = DVASPECT_CONTENT;
2666 pfe.tymed = TYMED_NULL;
2667 hres = IOleCache_Cache(pOleCache, &pfe, ADVF_PRIMEFIRST, &dwConnection);
2670 hres = IOleCache_Cache(pOleCache, pFormatEtc, ADVF_PRIMEFIRST, &dwConnection);
2671 IOleCache_Release(pOleCache);
2678 IUnknown_Release(
pUnk);
2745 WCHAR *user_type_old, *user_type_new;
2751 TRACE(
"(%p, %p)\n", pStg, pClsidNew);
2756 hr = IStorage_Stat(pStg, &
stat, STATFLAG_NONAME);
2760 *pClsidNew =
stat.clsid;
2765 hr = IStorage_SetClass(pStg, &
clsid);
2772 user_type_new =
NULL;
2777 user_type_new =
NULL;
2784 IStorage_SetClass(pStg, &
stat.clsid);
2792 IStorage_SetClass(pStg, &
stat.clsid);
2809 TRACE(
"(%p)\n",
object);
2811 if (!
object)
return FALSE;
2816 running = IRunnableObject_IsRunning(pRunnable);
2817 IRunnableObject_Release(pRunnable);
2867 hr = IDataObject_EnumFormatEtc(
data, DATADIR_GET, &enum_fmt);
2873 hr = IEnumFORMATETC_Next(enum_fmt, 1, &
fmt,
NULL);
2880 IEnumFORMATETC_Release(enum_fmt);
2887 found_static =
TRUE;
2891 IEnumFORMATETC_Release(enum_fmt);
2900 fmt->dwAspect = DVASPECT_CONTENT;
2922 if (src_cf) *src_cf = 0;
2926 med.tymed = TYMED_ISTORAGE;
2928 med.pUnkForRelease =
NULL;
2929 hr = IDataObject_GetDataHere(
data, &
fmt, &med);
2938 med.tymed = TYMED_ISTORAGE;
2940 med.pUnkForRelease =
NULL;
2941 hr = IDataObject_GetDataHere(
data, &
fmt, &med);
2953 hr = IDataObject_QueryGetData(
data, &
fmt);
2956 if (src_cf) *src_cf = fmt_id[
i];
2966 hr = IPersistStorage_GetClassID(persist, &
clsid);
2969 hr = IStorage_SetClass(stg, &
clsid);
2972 hr = IPersistStorage_Save(persist, stg,
FALSE);
2975 hr = IPersistStorage_SaveCompleted(persist,
NULL);
2978 IPersistStorage_Release(persist);
2990 DWORD renderopt,
ULONG num_cache_fmts,
DWORD *adv_flags, FORMATETC *cache_fmts,
2997 FIXME(
"%p, %s, %#lx, %#lx, %ld, %p, %p, %p, %p, %p, %p, %p: stub\n",
3018 DWORD advf = ADVF_PRIMEFIRST;
3030 FIXME(
"%p, %s, %#lx, %p, %p, %p, %p: semi-stub\n",
3047 STGMEDIUM stgmedium;
3050 TRACE(
"%p, %s, %#lx, %p, %p, %p, %p.\n",
data,
debugstr_guid(iid), renderopt,
fmt,
client_site, stg,
obj);
3055 if (renderopt != OLERENDER_FORMAT)
3057 FIXME(
"semi-stub\n");
3064 hr = IDataObject_GetData(
data,
fmt, &stgmedium);
3067 switch (
fmt->cfFormat)
3092 hr = IOleObject_QueryInterface(ole_object, &
IID_IOleCache2, (
void **)&ole_cache);
3101 hr = IPersistStorage_InitNew(persist, stg);
3104 hr = IOleCache2_Cache(ole_cache,
fmt, ADVF_PRIMEFIRST, &connection);
3107 hr = IOleCache2_SetData(ole_cache,
fmt, &stgmedium,
TRUE);
3109 stgmedium.tymed = TYMED_NULL;
3111 hr = IOleObject_GetUserType(ole_object, USERCLASSTYPE_FULL, &ole_typename);
3113 ole_typename =
NULL;
3118 hr = IPersistStorage_Save(persist, stg,
TRUE);
3121 hr = IPersistStorage_SaveCompleted(persist,
NULL);
3124 hr = IOleObject_QueryInterface(ole_object, iid,
obj);
3127 if (stgmedium.tymed == TYMED_NULL)
3130 IPersistStorage_Release(persist);
3132 IOleCache2_Release(ole_cache);
3134 IOleObject_Release(ole_object);
3152 TRACE(
"cls %s, %s, iid %s, flags %ld, render opts %ld, num fmts %ld, adv flags %p, fmts %p\n",
debugstr_guid(
clsid),
3155 for (
i = 0;
i < num_fmts;
i++)
3162 IMoniker_Release( mon );
3171 if (renderopt == OLERENDER_FORMAT)
3176 for (
i = 0;
i < num_fmts;
i++)
3181 memset( &med, 0,
sizeof(med) );
3184 hr = IOleCache_Cache(
cache,
fmts +
i, adv_flags[
i], &dummy_conn );
3195 hr = IUnknown_QueryInterface( unk, iid,
obj );
3199 if (unk) IUnknown_Release( unk );
3200 IDataObject_Release(
data );
3210 DWORD advf = ADVF_PRIMEFIRST;
3223 TRACE(
"(%p,%x,%x)\n", hSrc, cfFormat, uiFlags);
3239 if (!nEntries)
return NULL;
3280 if (!hDst)
return NULL;
3305 TRACE(
"returning %p\n", hDst);
#define DECLSPEC_HOTPATCH
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define RegCloseKey(hKey)
const CLSID CLSID_Picture_EnhMetafile
const CLSID CLSID_Picture_Dib
const CLSID CLSID_Picture_Metafile
static struct apartment * COM_CurrentApt(void)
static struct oletls * COM_CurrentInfo(void)
const char * debugstr_formatetc(const FORMATETC *formatetc)
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)
INT WINAPI StringFromGUID2(REFGUID guid, LPOLESTR str, INT cmax)
HRESULT WINAPI DECLSPEC_HOTPATCH CoInitializeEx(void *reserved, DWORD model)
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
static LSTATUS open_classes_key(HKEY hkey, const WCHAR *name, REGSAM access, HKEY *retkey)
HRESULT WINAPI CoLockObjectExternal(IUnknown *object, BOOL lock, BOOL last_unlock_releases)
HRESULT WINAPI CLSIDFromString(LPCOLESTR str, LPCLSID clsid)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, IUnknown *outer, DWORD cls_context, REFIID riid, void **obj)
HRESULT WINAPI GetHGlobalFromStream(IStream *stream, HGLOBAL *phglobal)
HRESULT WINAPI CreateStreamOnHGlobal(HGLOBAL hGlobal, BOOL delete_on_release, IStream **stream)
HRESULT WINAPI CoMarshalInterface(IStream *stream, REFIID riid, IUnknown *unk, DWORD dest_context, void *pvDestContext, DWORD mshlFlags)
HRESULT WINAPI CoReleaseMarshalData(IStream *stream)
HRESULT WINAPI CoUnmarshalInterface(IStream *stream, REFIID riid, void **ppv)
HRESULT WINAPI WriteClassStg(IStorage *pStg, REFCLSID rclsid)
#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)
_ACRTIMP __msvcrt_ulong __cdecl wcstoul(const wchar_t *, wchar_t **, int)
_ACRTIMP __msvcrt_long __cdecl wcstol(const wchar_t *, wchar_t **, int)
UINT embedded_object_clipboard_format
UINT filename_clipboard_format
UINT embed_source_clipboard_format
HRESULT COM_OpenKeyForCLSID(REFCLSID clsid, LPCWSTR keyname, REGSAM access, HKEY *subkey)
BOOL actctx_get_miscstatus(const CLSID *clsid, DWORD aspect, DWORD *status)
HRESULT WINAPI OleCreateDefaultHandler(REFCLSID clsid, LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj)
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)
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 WINAPI DropTargetWrapper_DragLeave(IDropTarget *iface)
HRESULT WINAPI OleCreateLinkFromData(IDataObject *data, REFIID iid, DWORD renderopt, FORMATETC *fmt, IOleClientSite *client_site, IStorage *stg, void **obj)
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 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)
static void OLEDD_TrackStateChange(TrackerWindowInfo *trackerInfo)
HRESULT WINAPI OleCreateFromDataEx(IDataObject *data, REFIID iid, DWORD flags, DWORD renderopt, ULONG num_cache_fmts, DWORD *adv_flags, FORMATETC *cache_fmts, IAdviseSink *sink, DWORD *conns, IOleClientSite *client_site, IStorage *stg, void **obj)
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)
HRESULT WINAPI OleQueryCreateFromData(IDataObject *data)
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 HRESULT get_storage(IDataObject *data, IStorage *stg, UINT *src_cf, BOOL other_fmts)
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[]
HRESULT WINAPI OleCreateStaticFromData(IDataObject *data, REFIID iid, DWORD renderopt, FORMATETC *fmt, IOleClientSite *client_site, IStorage *stg, void **obj)
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 OleCreateFromFileEx(REFCLSID clsid, const OLECHAR *filename, REFIID iid, DWORD flags, DWORD renderopt, ULONG num_fmts, DWORD *adv_flags, FORMATETC *fmts, IAdviseSink *sink, DWORD *conns, IOleClientSite *client_site, IStorage *stg, void **obj)
HRESULT WINAPI OleCreateFromData(IDataObject *data, REFIID iid, DWORD renderopt, FORMATETC *fmt, IOleClientSite *client_site, IStorage *stg, void **obj)
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)
HANDLE WINAPI OleDuplicateData(HANDLE hSrc, CLIPFORMAT cfFormat, UINT uiFlags)
HRESULT WINAPI OleCreateFromFile(REFCLSID clsid, const OLECHAR *filename, REFIID iid, DWORD renderopt, FORMATETC *fmt, IOleClientSite *client_site, IStorage *storage, void **obj)
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)
static void init_fmtetc(FORMATETC *fmt, CLIPFORMAT cf, TYMED tymed)
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)
static HRESULT WINAPI DropTargetWrapper_QueryInterface(IDropTarget *iface, REFIID riid, void **ppvObject)
static DWORD OLEDD_GetButtonState(void)
void clipbrd_uninitialize(void)
HRESULT WINAPI RevokeDragDrop(HWND hwnd)
static EnumOLEVERB * impl_from_IEnumOLEVERB(IEnumOLEVERB *iface)
HRESULT WINAPI OleInitializeWOW(DWORD x, DWORD y)
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 WriteFmtUserTypeStg(LPSTORAGE pstg, CLIPFORMAT cf, LPOLESTR lpszUserType)
HRESULT WINAPI SetConvertStg(IStorage *storage, BOOL convert)
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
HRESULT WINAPI CreateFileMoniker(LPCOLESTR lpszPathName, IMoniker **ppmk)
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLdouble GLdouble GLdouble r
GLenum GLuint GLenum GLsizei const GLchar * buf
GLsizei GLenum GLboolean sink
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
HGLOBAL NTAPI GlobalFree(HGLOBAL hMem)
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
HGLOBAL NTAPI GlobalAlloc(UINT uFlags, SIZE_T dwBytes)
SIZE_T NTAPI GlobalSize(HGLOBAL hMem)
#define PROCESS_DUP_HANDLE
HRESULT GetData([in, unique] FORMATETC *pformatetcIn, [out] STGMEDIUM *pmedium)
HRESULT QueryGetData([in, unique] FORMATETC *pformatetc)
static ERESOURCE GlobalLock
void *WINAPI CoTaskMemAlloc(SIZE_T size)
void WINAPI CoTaskMemFree(void *ptr)
#define memcpy(s1, s2, n)
static IOleClientSite * client_site
static IViewObject viewobject
static IRunnableObject * runnable
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
static const LOGPALETTE logpalette
@ COINIT_APARTMENTTHREADED
interface IStorage * LPSTORAGE
interface IPersistStorage * LPPERSISTSTORAGE
HRESULT WINAPI BindMoniker(LPMONIKER pmk, DWORD grfOpt, REFIID riid, LPVOID *ppvResult)
BSTR WINAPI SysAllocString(LPCOLESTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
const GUID IID_IViewObject
const GUID IID_IRunnableObject
const GUID IID_IOleCache2
const GUID IID_IDataObject
const GUID IID_IPersistStorage
const GUID IID_IOleObject
const GUID IID_IEnumOLEVERB
#define WS_EX_ACCEPTFILES
#define IsEqualIID(riid1, riid2)
_In_opt_ _In_opt_ _In_ _In_ DWORD cbData
IDropTarget IDropTarget_iface
IDropTarget * curDragTarget
TW_UINT32 TW_UINT16 TW_UINT16 MSG
#define FIELD_OFFSET(t, f)
#define CONTAINING_RECORD(address, type, field)
SIZE_T NTAPI VirtualQuery(IN LPCVOID lpAddress, OUT PMEMORY_BASIC_INFORMATION lpBuffer, IN SIZE_T dwLength)
UINT WINAPI GetPaletteEntries(HPALETTE hpal, UINT iStartIndex, UINT cEntries, LPPALETTEENTRY ppe)
DWORD WINAPI GetLastError(void)
DWORD WINAPI GetCurrentThreadId(void)
DWORD WINAPI GetCurrentProcessId(void)
DWORD WINAPI GetWindowThreadProcessId(HWND hWnd, PDWORD lpdwProcessId)
_In_ ULONG_PTR _In_ ULONG _Out_ ULONG_PTR * pid
#define REGDB_E_CLASSNOTREG
#define DRAGDROP_E_ALREADYREGISTERED
#define DRAGDROP_S_USEDEFAULTCURSORS
static HRESULT HRESULT_FROM_WIN32(unsigned int x)
#define DRAGDROP_E_NOTREGISTERED
#define DRAGDROP_E_INVALIDHWND
#define REGDB_E_READREGDB
#define REGDB_E_WRITEREGDB
#define DRAGDROP_S_CANCEL
#define OLEOBJ_E_INVALIDVERB
#define REGDB_E_KEYMISSING
#define DV_E_NOIVIEWOBJECT
BOOL WINAPI DeleteMetaFile(_In_ HMETAFILE)
int WINAPI GetObjectW(_In_ HANDLE h, _In_ int c, _Out_writes_bytes_opt_(c) LPVOID pv)
BOOL WINAPI DeleteEnhMetaFile(_In_opt_ HENHMETAFILE)
HPALETTE WINAPI CreatePalette(_In_reads_(_Inexpressible_(2 *sizeof(WORD)+plpal->palNumEntries *sizeof(PALETTEENTRY))) const LOGPALETTE *)
HBITMAP WINAPI CreateBitmapIndirect(_In_ const BITMAP *pbm)
HENHMETAFILE WINAPI CopyEnhMetaFileW(_In_ HENHMETAFILE hemfSrc, _In_opt_ LPCWSTR pszFile)
HMETAFILE WINAPI CopyMetaFileW(_In_ HMETAFILE hmfSrc, _In_opt_ LPCWSTR pszFile)
LONG WINAPI GetBitmapBits(_In_ HBITMAP hbit, _In_ LONG cb, _Out_writes_bytes_(cb) LPVOID lpvBits)
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