43#include "shdeprecated.h"
53#include "wine/unicode.h"
105 TRACE(
"(%p,%d,%d,%08x,%08x)\n", hShared, dwDstProcId, dwSrcProcId,
110 TRACE(
"Returning handle NULL\n");
115 if (dwDstProcId == dwMyProcId)
123 if (dwSrcProcId == dwMyProcId)
135 if (dwSrcProcId != dwMyProcId)
139 if (dwDstProcId != dwMyProcId)
143 TRACE(
"Returning handle %p\n", hRet);
227 TRACE(
"(%p %d %d)\n", hShared, dwProcId, bWriteAccess);
240 return (
char *) pMapped +
sizeof(
DWORD);
267 TRACE(
"(%p %d)\n", hShared, dwProcId);
277 return (
char *) pMapped +
sizeof(
DWORD);
297 TRACE(
"(%p)\n", lpView);
319 TRACE(
"(%p %d)\n", hShared, dwProcId);
350 static const WCHAR szProperty[] = {
'{',
'D',
'0',
'F',
'C',
'A',
'4',
'2',
'0',
351 '-',
'D',
'3',
'F',
'5',
'-',
'1',
'1',
'C',
'F',
'-',
'B',
'2',
'1',
'1',
'-',
'0',
352 '0',
'A',
'A',
'0',
'0',
'4',
'A',
'E',
'8',
'3',
'7',
'}',
'\0' };
357 IWebBrowserApp* pBrowser;
359 TRACE(
"(%p, %p)\n", lpBC, lpUnknown);
376 char szKeyBuff[128], szValueBuff[128];
377 DWORD dwKeySize, dwValueSize, dwRet = 0, dwCount = 0, dwNumValues, dwType;
378 FORMATETC* formatList, *
format;
381 TRACE(
"Registering formats and creating IEnumFORMATETC instance\n");
384 "Version\\Internet Settings\\Accepted Documents", &hDocs))
393 dwKeySize =
sizeof(szKeyBuff);
394 dwRet =
RegEnumValueA(hDocs,dwCount,szKeyBuff,&dwKeySize,0,&dwType,0,0);
398 dwNumValues = dwCount;
417 while(!dwRet && dwCount < dwNumValues)
419 dwKeySize =
sizeof(szKeyBuff);
420 dwValueSize =
sizeof(szValueBuff);
421 dwRet =
RegEnumValueA(hDocs, dwCount, szKeyBuff, &dwKeySize, 0, &dwType,
422 (
PBYTE)szValueBuff, &dwValueSize);
465 IEnumFORMATETC_Release(pIEnumFormatEtc);
476 TRACE(
"Retrieved IEnumFORMATETC property\n");
479 pIEnumFormatEtc =
NULL;
481 if (
hr ==
S_OK && pIEnumFormatEtc)
484 hr = IEnumFORMATETC_Clone(pIEnumFormatEtc, &pClone);
489 IEnumFORMATETC_Release(pClone);
492 IUnknown_Release(pIUnknown);
498 IWebBrowserApp_Release(pBrowser);
520 static const WCHAR szkeyW[] = {
521 'S',
'o',
'f',
't',
'w',
'a',
'r',
'e',
'\\',
522 'M',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
523 'I',
'n',
't',
'e',
'r',
'n',
'e',
't',
' ',
'E',
'x',
'p',
'l',
'o',
'r',
'e',
'r',
'\\',
524 'I',
'n',
't',
'e',
'r',
'n',
'a',
't',
'i',
'o',
'n',
'a',
'l',0};
526 'A',
'c',
'c',
'e',
'p',
't',
'L',
'a',
'n',
'g',
'u',
'a',
'g',
'e',0};
527 DWORD mystrlen, mytype;
534 TRACE(
"(%p, %p) *%p: %d\n", langbuf, buflen, buflen, buflen ? *buflen : -1);
536 if(!langbuf || !buflen || !*buflen)
539 mystrlen = (*buflen > 20) ? *buflen : 20 ;
548 if (!lres && (*buflen >
len)) {
580 DWORD buflenW, convlen;
583 TRACE(
"(%p, %p) *%p: %d\n", langbuf, buflen, buflen, buflen ? *buflen : -1);
585 if(!langbuf || !buflen || !*buflen)
return E_FAIL;
599 if (convlen < *buflen)
601 langbuf[convlen] = 0;
609 *buflen = buflenW ? convlen : 0;
635 sprintf(xguid,
"{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}",
665 static const WCHAR wszFormat[] = {
'{',
'%',
'0',
'8',
'l',
'X',
'-',
'%',
'0',
'4',
'X',
'-',
'%',
'0',
'4',
'X',
'-',
666 '%',
'0',
'2',
'X',
'%',
'0',
'2',
'X',
'-',
'%',
'0',
'2',
'X',
'%',
'0',
'2',
'X',
'%',
'0',
'2',
'X',
'%',
'0',
'2',
667 'X',
'%',
'0',
'2',
'X',
'%',
'0',
'2',
'X',
'}',0};
936 static const WCHAR szIEKey[] = {
'S',
'O',
'F',
'T',
'W',
'A',
'R',
'E',
'\\',
937 'M',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
'I',
'n',
't',
'e',
'r',
'n',
'e',
't',
938 ' ',
'E',
'x',
'p',
'l',
'o',
'r',
'e',
'r',
'\0' };
939 static const WCHAR szWinNtKey[] = {
'S',
'O',
'F',
'T',
'W',
'A',
'R',
'E',
'\\',
940 'M',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
'W',
'i',
'n',
'd',
'o',
'w',
's',
' ',
941 'N',
'T',
'\\',
'C',
'u',
'r',
'r',
'e',
'n',
't',
'V',
'e',
'r',
's',
'i',
'o',
'n',
'\0' };
942 static const WCHAR szWinKey[] = {
'S',
'O',
'F',
'T',
'W',
'A',
'R',
'E',
'\\',
943 'M',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
'W',
'i',
'n',
'd',
'o',
'w',
's',
'\\',
944 'C',
'u',
'r',
'r',
'e',
'n',
't',
'V',
'e',
'r',
's',
'i',
'o',
'n',
'\0' };
945 static const WCHAR szRegKey[] = {
'S',
'O',
'F',
'T',
'W',
'A',
'R',
'E',
'\\',
946 'M',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
'I',
'n',
't',
'e',
'r',
'n',
'e',
't',
947 ' ',
'E',
'x',
'p',
'l',
'o',
'r',
'e',
'r',
'\\',
948 'R',
'e',
'g',
'i',
's',
't',
'r',
'a',
't',
'i',
'o',
'n',
'\0' };
949 static const WCHAR szVersion[] = {
'V',
'e',
'r',
's',
'i',
'o',
'n',
'\0' };
950 static const WCHAR szCustomized[] = {
'C',
'u',
's',
't',
'o',
'm',
'i',
'z',
'e',
'd',
951 'V',
'e',
'r',
's',
'i',
'o',
'n',
'\0' };
952 static const WCHAR szOwner[] = {
'R',
'e',
'g',
'i',
's',
't',
'e',
'r',
'e',
'd',
953 'O',
'w',
'n',
'e',
'r',
'\0' };
954 static const WCHAR szOrg[] = {
'R',
'e',
'g',
'i',
's',
't',
'e',
'r',
'e',
'd',
955 'O',
'r',
'g',
'a',
'n',
'i',
'z',
'a',
't',
'i',
'o',
'n',
'\0' };
956 static const WCHAR szProduct[] = {
'P',
'r',
'o',
'd',
'u',
'c',
't',
'I',
'd',
'\0' };
957 static const WCHAR szUpdate[] = {
'I',
'E',
'A',
'K',
958 'U',
'p',
'd',
'a',
't',
'e',
'U',
'r',
'l',
'\0' };
959 static const WCHAR szHelp[] = {
'I',
'E',
'A',
'K',
960 'H',
'e',
'l',
'p',
'S',
't',
'r',
'i',
'n',
'g',
'\0' };
983 dwLen = 30 - dwStrLen;
985 szCustomized, &dwType,
buff+dwStrLen, &dwLen);
1049 ULONG cCmds, OLECMD *prgCmds, OLECMDTEXT* pCmdText)
1053 TRACE(
"(%p,%p,%d,%p,%p)\n",lpUnknown, pguidCmdGroup, cCmds, prgCmds, pCmdText);
1059 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IOleCommandTarget,
1064 hRet = IOleCommandTarget_QueryStatus(lpOle, pguidCmdGroup, cCmds,
1066 IOleCommandTarget_Release(lpOle);
1093 TRACE(
"(%p,%p,%d,%d,%p,%p)\n",lpUnknown, pguidCmdGroup, nCmdID,
1094 nCmdexecopt, pvaIn, pvaOut);
1100 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IOleCommandTarget,
1104 hRet = IOleCommandTarget_Exec(lpOle, pguidCmdGroup, nCmdID,
1105 nCmdexecopt, pvaIn, pvaOut);
1106 IOleCommandTarget_Release(lpOle);
1137 if (new_flags !=
ret)
1201 if(!lpUnknown || (fConnect && !lpUnkSink))
1208 (
void**)&lpContainer);
1211 hRet = IConnectionPointContainer_FindConnectionPoint(lpContainer,
riid, &lpCP);
1216 hRet = IConnectionPoint_Unadvise(lpCP, *lpCookie);
1218 hRet = IConnectionPoint_Advise(lpCP, lpUnkSink, lpCookie);
1226 IConnectionPoint_Release(lpCP);
1229 IConnectionPointContainer_Release(lpContainer);
1247 TRACE(
"(%p)\n", lpUnknown);
1249 if(!lpUnknown || !*lpUnknown)
return;
1251 TRACE(
"doing Release\n");
1253 IUnknown_Release(*lpUnknown);
1271 if (lpszSrc && lpszSrc[0] ==
'/' && lpszSrc[1] ==
'/')
1294 TRACE(
"(%p %p)\n", lpInt1, lpInt2);
1296 if (!lpInt1 || !lpInt2)
1299 if (lpInt1 == lpInt2)
1302 if (IUnknown_QueryInterface(lpInt1, &
IID_IUnknown, (
void**)&lpUnknown1) !=
S_OK)
1305 if (IUnknown_QueryInterface(lpInt2, &
IID_IUnknown, (
void**)&lpUnknown2) !=
S_OK)
1307 IUnknown_Release(lpUnknown1);
1311 ret = lpUnknown1 == lpUnknown2;
1313 IUnknown_Release(lpUnknown1);
1314 IUnknown_Release(lpUnknown2);
1341 TRACE(
"(%p,%p)\n", lpUnknown, lphWnd);
1346 hRet = IUnknown_QueryInterface(lpUnknown, &
IID_IOleWindow, (
void**)&lpOle);
1350 hRet = IUnknown_QueryInterface(lpUnknown,&IID_IShellView, (
void**)&lpOle);
1354 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IInternetSecurityMgrSite,
1364 hRet = IOleWindow_GetWindow((
IOleWindow*)lpOle, lphWnd);
1365 IUnknown_Release(lpOle);
1367 TRACE(
"Returning HWND=%p\n", *lphWnd);
1392 if (!iface)
return E_FAIL;
1394 hr = IUnknown_QueryInterface(iface, &IID_IShellService, (
void**)&service);
1397 hr = IShellService_SetOwner(service,
pUnk);
1398 IShellService_Release(service);
1422 TRACE(
"IID_IObjectWithSite QI ret=%08x, %p\n",
hr, iobjwithsite);
1425 hr = IObjectWithSite_SetSite(iobjwithsite,
site);
1426 TRACE(
"done IObjectWithSite_SetSite ret=%08x\n",
hr);
1427 IObjectWithSite_Release(iobjwithsite);
1431 hr = IUnknown_QueryInterface(
obj, &IID_IInternetSecurityManager, (
LPVOID *)&isecmgr);
1432 TRACE(
"IID_IInternetSecurityManager QI ret=%08x, %p\n",
hr, isecmgr);
1436 TRACE(
"done IInternetSecurityManager_SetSecuritySite ret=%08x\n",
hr);
1437 IInternetSecurityManager_Release(isecmgr);
1470 hr = IUnknown_QueryInterface(lpUnknown, &
IID_IPersist, (
void**)&persist);
1473 hr = IUnknown_QueryInterface(lpUnknown, &IID_IPersistFolder, (
void**)&persist);
1478 hr = IPersist_GetClassID(persist,
clsid);
1479 IPersist_Release(persist);
1515 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IServiceProvider,
1518 if (hRet ==
S_OK && pService)
1520 TRACE(
"QueryInterface returned (IServiceProvider*)%p\n", pService);
1523 hRet = IServiceProvider_QueryService(pService,
sid,
riid, lppOut);
1525 TRACE(
"(IServiceProvider*)%p returned (IUnknown*)%p\n", pService, *lppOut);
1527 IServiceProvider_Release(pService);
1565 hr = IOleCommandTarget_Exec(
target,
group, cmdId, cmdOpt, pIn, pOut);
1566 IOleCommandTarget_Release(
target);
1603 hr = IProfferService_ProfferService(proffer, service, pService, pCookie);
1606 hr = IProfferService_RevokeService(proffer, *pCookie);
1610 IProfferService_Release(proffer);
1635 IInputObject*
object =
NULL;
1642 ret = IUnknown_QueryInterface(
unknown, &IID_IInputObject, (
LPVOID*) &
object);
1727 data.uiMsgId = uiMsgId;
1756 TRACE(
"%p\n", hMenu);
1758 while (iItemCount >= 0)
1802 TRACE(
"%p, %u, %d\n", hMenu, uID, bCheck);
1831 DWORD dwEffect = DROPEFFECT_LINK | DROPEFFECT_MOVE | DROPEFFECT_COPY;
1834 TRACE(
"%p %p 0x%08x %p %p\n", pDrop, pDataObj, grfKeyState, lpPt, pdwEffect);
1840 pdwEffect = &dwEffect;
1842 IDropTarget_DragEnter(pDrop, pDataObj, grfKeyState, *lpPt, pdwEffect);
1844 if (*pdwEffect != DROPEFFECT_NONE)
1845 return IDropTarget_Drop(pDrop, pDataObj, grfKeyState, *lpPt, pdwEffect);
1847 IDropTarget_DragLeave(pDrop);
1869 TRACE(
"(%p,%p)\n", lpUnknown, lpPropBag);
1877 hRet = IPersistPropertyBag_Load(lpPPBag, lpPropBag,
NULL);
1878 IPersistPropertyBag_Release(lpPPBag);
1903 TRACE(
"(%p,%p,0x%08x)\n", lpUnknown, lpMsg, dwModifiers);
1910 hRet = IOleControlSite_TranslateAccelerator(lpCSite, lpMsg, dwModifiers);
1911 IOleControlSite_Release(lpCSite);
1936 TRACE(
"(%p, %d)\n", lpUnknown, fGotFocus);
1943 hRet = IOleControlSite_OnFocus(lpCSite, fGotFocus);
1944 IOleControlSite_Release(lpCSite);
1957 static const DWORD service_id[] = { 0xd12f26b2, 0x11d0d90a, 0xaa000d83, 0x83435b00 };
1959 static const DWORD function_id[] = { 0xd12f26b1, 0x11d0d90a, 0xaa000d83, 0x83435b00 };
1963 TRACE(
"(%p,%p,%p,%p,%p)\n", lpUnknown, lpArg1, lpArg2, lpArg3, lpArg4);
1965 if (lpUnknown && lpArg4)
1968 (
REFGUID)function_id, (
void**)&lpUnkInner);
1977 hRet = IParseDisplayName_ParseDisplayName((LPPARSEDISPLAYNAME)lpUnkInner,
1978 lpArg1, lpArg2, lpArg3, lpArg4);
1979 IUnknown_Release(lpUnkInner);
2001 TRACE(
"(%p,%u)\n", hMenu, uID);
2093 if (lpFolder && pidl)
2095 hRet = IShellFolder_GetUIObjectOf(lpFolder,
NULL, 1, &pidl, &IID_IQueryInfo,
2096 NULL, (
void**)&lpInfo);
2163 if (lpKeys && lpValues)
2169 if (lpKeys[
i] == iKey)
2192 TRACE(
"(%p,%p)\n", lppDest, lpUnknown);
2198 IUnknown_AddRef(lpUnknown);
2199 *lppDest = lpUnknown;
2209 OLECMD *prgCmds, OLECMDTEXT* pCmdText)
2211 FIXME(
"(%p,%p,%p,%d,%p,%p) - stub\n",
2212 lpUnknown, lpReserved, riidCmdGrp, cCmds, prgCmds, pCmdText);
2226 FIXME(
"(%p,%d,%p,%d,%d,%p,%p) - stub!\n", lpUnknown, iUnk, pguidCmdGroup,
2227 nCmdID, nCmdexecopt, pvaIn, pvaOut);
2237 FIXME(
"(%p,%d,%p) - stub!\n", pguidCmdGroup, cCmds, prgCmds);
2260 else if(hParent ==
hChild)
2279#define FDSA_FLAG_INTERNAL_ALLOC 0x01
2297 info->num_items = 0;
2300 info->blocks_alloced = init_blocks;
2333 if(where >
info->num_items)
2334 where =
info->num_items;
2336 if(
info->num_items >=
info->blocks_alloced)
2339 if(
info->flags & 0x1)
2343 void *old_mem =
info->mem;
2351 if(where < info->num_items)
2354 (
char*)
info->mem + where *
info->block_size,
2355 (
info->num_items - where) *
info->block_size);
2372 if(where >=
info->num_items)
2375 if(where < info->num_items - 1)
2378 (
char*)
info->mem + (where + 1) *
info->block_size,
2379 (
info->num_items - where - 1) *
info->block_size);
2382 0,
info->block_size);
2409 while (xmove->
piid) {
2413 TRACE(
"matched, returning (%p)\n", a_vtbl);
2415 IUnknown_AddRef(a_vtbl);
2423 TRACE(
"returning first for IUnknown (%p)\n", a_vtbl);
2425 IUnknown_AddRef(a_vtbl);
2461 HFONT hOldFont, hNewFont;
2468 GetObjectW(hOldFont,
sizeof(lfOldFont), &lfOldFont);
2483 hNewFont = hOldFont;
2486 if (hOldFont != hNewFont)
2543 strcpy(
string,
"CLSID\\");
2545 strcat(
string,
"\\InProcServer32");
2587 TRACE(
"(%p,%p,%d)\n",
hInst, lppClasses, iCount);
2607 TRACE(
"(%p,%p,%d)\n",
hInst, lppClasses, iCount);
2645 LPOBJECTWITHSITE lpSite =
NULL;
2649 if (lpUnknown && iid && lppSite)
2655 hRet = IObjectWithSite_GetSite(lpSite, iid, lppSite);
2656 IObjectWithSite_Release(lpSite);
2682 static const char szClass[] =
"WorkerA";
2686 TRACE(
"(%p, %p, 0x%08x, 0x%08x, %p, 0x%08lx)\n",
2722#define SHELL_NO_POLICY 0xffffffff
2725static const WCHAR strRegistryPolicyW[] = {
'S',
'o',
'f',
't',
'w',
'a',
'r',
'e',
'\\',
'M',
'i',
'c',
'r',
'o',
2726 's',
'o',
'f',
't',
'\\',
'W',
'i',
'n',
'd',
'o',
'w',
's',
'\\',
2727 'C',
'u',
'r',
'r',
'e',
'n',
't',
'V',
'e',
'r',
's',
'i',
'o',
'n',
2728 '\\',
'P',
'o',
'l',
'i',
'c',
'i',
'e',
's',0};
2753 lpSubKey =
L"Software\\Microsoft\\Windows\\CurrentVersion\\Policies";
2757 dwSize =
sizeof(dwValue);
2761 dwSize =
sizeof(dwValue);
2765 DWORD retval, datsize =
sizeof(retval);
2821 if (!polTable || !polArr)
2826 for (;polTable->
appstr; polTable++, polArr++)
2828 for (;polTable->
policy; polTable++, polArr++)
2871 if(
pUnk && pInner) {
2872 hret = IUnknown_QueryInterface(pInner,
riid,
ppv);
2875 TRACE(
"-- 0x%08x\n", hret);
2893 TRACE(
"(%p,%p)\n", lpDest, lppUnknown);
2898 IUnknown_AddRef(lpDest);
2953 static const char szIntegratedBrowser[] =
"IntegratedBrowser";
2954 static DWORD dwState = 0;
2969 dwState = pDllGetVersion ? 2 : 1;
2975 "Software\\Microsoft\\Internet Explorer", 0,
2982 if (!dwRet && dwState == 1)
2987 else if (dwRet && dwState == 2)
3007 static const WCHAR szClass[] = {
'W',
'o',
'r',
'k',
'e',
'r',
'W', 0 };
3011 TRACE(
"(%p, %p, 0x%08x, 0x%08x, %p, 0x%08lx)\n",
3062 TRACE(
"%p %p %p\n",
hWnd, lpFolder, lpApidl);
3088 while(iter-- >
args) {
3096 switch(
V_VT(iter)) {
3149 DISPPARAMS* dispParams)
3154 DISPPARAMS*
params = dispParams;
3156 HRESULT result = IConnectionPoint_EnumConnections(iCP, &enumerator);
3164 while(IEnumConnections_Next(enumerator, 1, &rgcd,
NULL)==
S_OK)
3167 if ((iid &&
SUCCEEDED(IUnknown_QueryInterface(rgcd.pUnk, iid, (
LPVOID*)&dispIface))) ||
3171 IDispatch_Release(dispIface);
3173 IUnknown_Release(rgcd.pUnk);
3176 IEnumConnections_Release(enumerator);
3185 DISPID dispId, DISPPARAMS* dispParams,
3191 FIXME(
"(%p)->(0x%x %p %x %x) partial stub\n", iCP, dispId, dispParams, unknown1, unknown2);
3193 result = IConnectionPoint_GetConnectionInterface(iCP, &iid);
3211 DISPPARAMS* dispParams)
3216 TRACE(
"(%p)->(0x%x %p)\n",iCP,dispId,dispParams);
3218 result = IConnectionPoint_GetConnectionInterface(iCP, &iid);
3246 TRACE(
"(%p,0x%8X)\n", lpCP, dispID);
3250 hRet = IConnectionPoint_EnumConnections(lpCP, &lpEnum);
3255 CONNECTDATA connData;
3259 while (IEnumConnections_Next(lpEnum, 1, &connData, &ulFetched) ==
S_OK)
3264 IPropertyNotifySink_OnChanged(lpSink, dispID);
3265 IPropertyNotifySink_Release(lpSink);
3267 IUnknown_Release(connData.pUnk);
3270 IEnumConnections_Release(lpEnum);
3290 DISPPARAMS dispParams = {
buffer,
NULL, cParams, 0};
3300 result = IConnectionPointContainer_FindConnectionPoint(iCPC,
riid, &iCP);
3301 IConnectionPointContainer_Release(iCPC);
3310 IConnectionPoint_Release(iCP);
3334 TRACE(
"(%p,0x%8X)\n", lpUnknown, dispID);
3344 IConnectionPointContainer_Release(lpCPC);
3347 IConnectionPoint_Release(lpCP);
3538#define IsIface(type) SUCCEEDED((hRet = IUnknown_QueryInterface(lpUnknown, &IID_##type, (void**)&lpObj)))
3539#define IShellBrowser_EnableModeless IShellBrowser_EnableModelessSB
3540#define EnableModeless(type) type##_EnableModeless((type*)lpObj, bModeless)
3566 TRACE(
"(%p,%d)\n", lpUnknown, bModeless);
3584 IUnknown_Release(lpObj);
3638 TRACE(
"(%p, %p, %p, %u)\n",
hWnd, lpFolder, lpApidl, dwCommandId);
3644 hRet = IShellFolder_GetUIObjectOf(lpFolder,
hWnd, 1, &lpApidl,
3645 &IID_IContextMenu, 0, (
void**)&iContext);
3654 hQuery = IContextMenu_QueryContextMenu(iContext, hMenu, 0, 1, 0x7FFF,
3655 dwCommandId ? CMF_NORMAL : CMF_DEFAULTONLY);
3661 if (dwCommandId != (
UINT)-1)
3663 CMINVOKECOMMANDINFO cmIci;
3665 memset(&cmIci,0,
sizeof(cmIci));
3666 cmIci.cbSize =
sizeof(cmIci);
3667 cmIci.fMask = CMIC_MASK_ASYNCOK;
3676 hRet = IContextMenu_InvokeCommand(iContext, &cmIci);
3681 IContextMenu_Release(iContext);
3736 FIXME(
"(%s,%p,%d) semi-stub!\n",
debugstr_a(new_mod), inst_hwnd, dwCrossCodePage);
3738 if (!
len ||
len >=
sizeof(mod_path))
return NULL;
3760 FIXME(
"(%s,%p,%d) semi-stub!\n",
debugstr_w(new_mod), inst_hwnd, dwCrossCodePage);
3788 TRACE(
"(0x%8x,%d,%d)\n", cRGB, dwLuma, bUnknown);
3796 FIXME(
"Ignoring luma adjustment\n");
3833 return WNetGetLastErrorW(lpError, lpErrorBuf, nErrorBufSize, lpNameBuf, nNameBufSize);
3883 return IShellFolder_EnumObjects(lpFolder,
hwnd,
flags, ppenum);
3889 wHue = wHue > 240 ? wHue - 240 : wHue < 0 ? wHue + 240 : wHue;
3893 else if (wHue > 120)
3898 return ((wHue * (wMid2 - wMid1) + 20) / 40) + wMid1;
3902#define GET_RGB(h) (ConvertHue(h, wMid1, wMid2) * 255 + 120) / 240
3926 WORD wGreen, wBlue, wMid1, wMid2;
3928 if (wLuminosity > 120)
3929 wMid2 = wSaturation + wLuminosity - (wSaturation * wLuminosity + 120) / 240;
3931 wMid2 = ((wSaturation + 240) * wLuminosity + 120) / 240;
3933 wMid1 = wLuminosity * 2 - wMid2;
3939 return RGB(wRed, wGreen, wBlue);
3942 wRed = wLuminosity * 255 / 240;
3943 return RGB(wRed, wRed, wRed);
4050 FIXME(
"(0x%08x)stub\n",
x);
4114 ERR(
"GetVersionEx failed\n");
4122#define ISOS_RETURN(x) \
4123 TRACE("(0x%x) ret=%d\n",feature,(x)); \
4154 FIXME(
"(OS_EMBEDDED) What should we return here?\n");
4157 FIXME(
"(OS_TERMINALCLIENT) What should we return here?\n");
4160 FIXME(
"(OS_TERMINALREMOTEADMIN) What should we return here?\n");
4183 FIXME(
"(OS_FASTUSERSWITCHING) What should we return here?\n");
4186 FIXME(
"(OS_WELCOMELOGONUI) What should we return here?\n");
4189 FIXME(
"(OS_DOMAINMEMBER) What should we return here?\n");
4204 FIXME(
"(OS_TABLETPC) What should we return here?\n");
4207 FIXME(
"(OS_SERVERADMINUI) What should we return here?\n");
4210 FIXME(
"(OS_MEDIACENTER) What should we return here?\n");
4213 FIXME(
"(OS_APPLIANCE) What should we return here?\n");
4281 IInputObject* lpInput =
NULL;
4284 TRACE(
"(%p,%p)\n", lpUnknown, lpMsg);
4287 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IInputObject,
4313 IInputObject* lpInput =
NULL;
4316 TRACE(
"(%p)\n", lpUnknown);
4319 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IInputObject,
4352 int wR, wG, wB, wMax, wMin, wHue, wLuminosity, wSaturation;
4354 TRACE(
"(%08x,%p,%p,%p)\n", cRGB, pwHue, pwLuminance, pwSaturation);
4360 wMax =
max(wR,
max(wG, wB));
4361 wMin =
min(wR,
min(wG, wB));
4364 wLuminosity = ((wMax + wMin) * 240 + 255) / 510;
4376 int wDelta = wMax - wMin, wRNorm, wGNorm, wBNorm;
4379 if (wLuminosity <= 120)
4380 wSaturation = ((wMax + wMin)/2 + wDelta * 240) / (wMax + wMin);
4382 wSaturation = ((510 - wMax - wMin)/2 + wDelta * 240) / (510 - wMax - wMin);
4385 wRNorm = (wDelta/2 + wMax * 40 - wR * 40) / wDelta;
4386 wGNorm = (wDelta/2 + wMax * 40 - wG * 40) / wDelta;
4387 wBNorm = (wDelta/2 + wMax * 40 - wB * 40) / wDelta;
4390 wHue = wBNorm - wGNorm;
4391 else if (wG == wMax)
4392 wHue = 80 + wRNorm - wBNorm;
4394 wHue = 160 + wGNorm - wRNorm;
4397 else if (wHue > 240)
4403 *pwLuminance = wLuminosity;
4405 *pwSaturation = wSaturation;
4442 FIXME(
" - returning bogus address for SHGetInverseCMAP\n");
4466 static int is_low = -1;
4467 TRACE(
"(0x%08x)\n", dwType);
4468 if (dwType == 0 && is_low == -1)
4471 is_low = (
status.dwTotalPhys <= 0x1000000);
4475 FIXME(
"(0x%08x) stub\n", dwType);
4498 TRACE(
"%p %u\n", hMenu, wID);
4500 while (nIter < nCount)
4506 TRACE(
"ret %d\n", nIter);
4522 TRACE(
"%p %u\n", hMenu, uID);
4546 FIXME(
"(0x%08x) stub\n", dwUnknown);
4576 static WCHAR szSkipBinding[] = {
'S',
'k',
'i',
'p',
' ',
4577 'B',
'i',
'n',
'd',
'i',
'n',
'g',
' ',
'C',
'L',
'S',
'I',
'D',
'\0' };
4584 if (
SUCCEEDED(IBindCtx_GetObjectParam(pbc, szSkipBinding, &lpUnk)))
4592 IUnknown_Release(lpUnk);
4621 static const WCHAR explorerW[] = {
'S',
'o',
'f',
't',
'w',
'a',
'r',
'e',
'\\',
4622 'M',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
'W',
'i',
'n',
'd',
'o',
'w',
's',
'\\',
4623 'C',
'u',
'r',
'r',
'e',
'n',
't',
'V',
'e',
'r',
's',
'i',
'o',
'n',
'\\',
4624 'E',
'x',
'p',
'l',
'o',
'r',
'e',
'r',
'\\'};
4625 static const WCHAR shellW[] = {
'S',
'o',
'f',
't',
'w',
'a',
'r',
'e',
'\\',
4626 'M',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
'W',
'i',
'n',
'd',
'o',
'w',
's',
'\\',
4627 'S',
'h',
'e',
'l',
'l',
'\\'};
4628 static const WCHAR shell_no_roamW[] = {
'S',
'o',
'f',
't',
'w',
'a',
'r',
'e',
'\\',
4629 'M',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
'W',
'i',
'n',
'd',
'o',
'w',
's',
'\\',
4630 'S',
'h',
'e',
'l',
'l',
'N',
'o',
'R',
'o',
'a',
'm',
'\\'};
4631 static const WCHAR classesW[] = {
'S',
'o',
'f',
't',
'w',
'a',
'r',
'e',
'\\',
4632 'C',
'l',
'a',
's',
's',
'e',
's',
'\\'};
4634 static const WCHAR localized_resource_nameW[] = {
'L',
'o',
'c',
'a',
'l',
'i',
'z',
'e',
'd',
4635 'R',
'e',
's',
'o',
'u',
'r',
'c',
'e',
'N',
'a',
'm',
'e',
'\\'};
4636 static const WCHAR handlersW[] = {
'H',
'a',
'n',
'd',
'l',
'e',
'r',
's',
'\\'};
4637 static const WCHAR associationsW[] = {
'A',
's',
's',
'o',
'c',
'i',
'a',
't',
'i',
'o',
'n',
's',
'\\'};
4638 static const WCHAR volatileW[] = {
'V',
'o',
'l',
'a',
't',
'i',
'l',
'e',
'\\'};
4639 static const WCHAR mui_cacheW[] = {
'M',
'U',
'I',
'C',
'a',
'c',
'h',
'e',
'\\'};
4640 static const WCHAR file_extsW[] = {
'F',
'i',
'l',
'e',
'E',
'x',
't',
's',
'\\'};
4644 int size_key, size_subkey, size_user;
4650 if(
flags == 0x1ffff)
4653 switch(
flags&0xff0) {
4656 size_key =
sizeof(explorerW);
4660 size_key =
sizeof(shellW);
4663 key = shell_no_roamW;
4664 size_key =
sizeof(shell_no_roamW);
4668 size_key =
sizeof(classesW);
4671 FIXME(
"unsupported flags (0x%08x)\n",
flags);
4675 switch(
flags&0xff000) {
4681 subkey = localized_resource_nameW;
4682 size_subkey =
sizeof(localized_resource_nameW);
4686 size_subkey =
sizeof(handlersW);
4689 subkey = associationsW;
4690 size_subkey =
sizeof(associationsW);
4694 size_subkey =
sizeof(volatileW);
4697 subkey = mui_cacheW;
4698 size_subkey =
sizeof(mui_cacheW);
4701 subkey = file_extsW;
4702 size_subkey =
sizeof(file_extsW);
4705 FIXME(
"unsupported flags (0x%08x)\n",
flags);
4716 ERR(
"Out of memory\n");