43#include "shdeprecated.h"
50#include "wine/unicode.h"
98 TRACE(
"(%p,%d,%d,%08x,%08x)\n", hShared, dwDstProcId, dwSrcProcId,
103 TRACE(
"Returning handle NULL\n");
108 if (dwDstProcId == dwMyProcId)
116 if (dwSrcProcId == dwMyProcId)
128 if (dwSrcProcId != dwMyProcId)
132 if (dwDstProcId != dwMyProcId)
136 TRACE(
"Returning handle %p\n", hRet);
220 TRACE(
"(%p %d %d)\n", hShared, dwProcId, bWriteAccess);
233 return (
char *) pMapped +
sizeof(
DWORD);
260 TRACE(
"(%p %d)\n", hShared, dwProcId);
270 return (
char *) pMapped +
sizeof(
DWORD);
290 TRACE(
"(%p)\n", lpView);
312 TRACE(
"(%p %d)\n", hShared, dwProcId);
343 static const WCHAR szProperty[] = {
'{',
'D',
'0',
'F',
'C',
'A',
'4',
'2',
'0',
344 '-',
'D',
'3',
'F',
'5',
'-',
'1',
'1',
'C',
'F',
'-',
'B',
'2',
'1',
'1',
'-',
'0',
345 '0',
'A',
'A',
'0',
'0',
'4',
'A',
'E',
'8',
'3',
'7',
'}',
'\0' };
350 IWebBrowserApp* pBrowser;
352 TRACE(
"(%p, %p)\n", lpBC, lpUnknown);
369 char szKeyBuff[128], szValueBuff[128];
370 DWORD dwKeySize, dwValueSize, dwRet = 0, dwCount = 0, dwNumValues, dwType;
371 FORMATETC* formatList, *
format;
374 TRACE(
"Registering formats and creating IEnumFORMATETC instance\n");
377 "Version\\Internet Settings\\Accepted Documents", &hDocs))
386 dwKeySize =
sizeof(szKeyBuff);
387 dwRet =
RegEnumValueA(hDocs,dwCount,szKeyBuff,&dwKeySize,0,&dwType,0,0);
391 dwNumValues = dwCount;
410 while(!dwRet && dwCount < dwNumValues)
412 dwKeySize =
sizeof(szKeyBuff);
413 dwValueSize =
sizeof(szValueBuff);
414 dwRet =
RegEnumValueA(hDocs, dwCount, szKeyBuff, &dwKeySize, 0, &dwType,
415 (
PBYTE)szValueBuff, &dwValueSize);
458 IEnumFORMATETC_Release(pIEnumFormatEtc);
469 TRACE(
"Retrieved IEnumFORMATETC property\n");
472 pIEnumFormatEtc =
NULL;
474 if (
hr ==
S_OK && pIEnumFormatEtc)
477 hr = IEnumFORMATETC_Clone(pIEnumFormatEtc, &pClone);
482 IEnumFORMATETC_Release(pClone);
485 IUnknown_Release(pIUnknown);
491 IWebBrowserApp_Release(pBrowser);
513 static const WCHAR szkeyW[] = {
514 'S',
'o',
'f',
't',
'w',
'a',
'r',
'e',
'\\',
515 'M',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
516 'I',
'n',
't',
'e',
'r',
'n',
'e',
't',
' ',
'E',
'x',
'p',
'l',
'o',
'r',
'e',
'r',
'\\',
517 'I',
'n',
't',
'e',
'r',
'n',
'a',
't',
'i',
'o',
'n',
'a',
'l',0};
519 'A',
'c',
'c',
'e',
'p',
't',
'L',
'a',
'n',
'g',
'u',
'a',
'g',
'e',0};
520 DWORD mystrlen, mytype;
527 TRACE(
"(%p, %p) *%p: %d\n", langbuf, buflen, buflen, buflen ? *buflen : -1);
529 if(!langbuf || !buflen || !*buflen)
532 mystrlen = (*buflen > 20) ? *buflen : 20 ;
541 if (!lres && (*buflen >
len)) {
573 DWORD buflenW, convlen;
576 TRACE(
"(%p, %p) *%p: %d\n", langbuf, buflen, buflen, buflen ? *buflen : -1);
578 if(!langbuf || !buflen || !*buflen)
return E_FAIL;
592 if (convlen < *buflen)
594 langbuf[convlen] = 0;
602 *buflen = buflenW ? convlen : 0;
628 sprintf(xguid,
"{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}",
658 static const WCHAR wszFormat[] = {
'{',
'%',
'0',
'8',
'l',
'X',
'-',
'%',
'0',
'4',
'X',
'-',
'%',
'0',
'4',
'X',
'-',
659 '%',
'0',
'2',
'X',
'%',
'0',
'2',
'X',
'-',
'%',
'0',
'2',
'X',
'%',
'0',
'2',
'X',
'%',
'0',
'2',
'X',
'%',
'0',
'2',
660 'X',
'%',
'0',
'2',
'X',
'%',
'0',
'2',
'X',
'}',0};
929 static const WCHAR szIEKey[] = {
'S',
'O',
'F',
'T',
'W',
'A',
'R',
'E',
'\\',
930 'M',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
'I',
'n',
't',
'e',
'r',
'n',
'e',
't',
931 ' ',
'E',
'x',
'p',
'l',
'o',
'r',
'e',
'r',
'\0' };
932 static const WCHAR szWinNtKey[] = {
'S',
'O',
'F',
'T',
'W',
'A',
'R',
'E',
'\\',
933 'M',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
'W',
'i',
'n',
'd',
'o',
'w',
's',
' ',
934 'N',
'T',
'\\',
'C',
'u',
'r',
'r',
'e',
'n',
't',
'V',
'e',
'r',
's',
'i',
'o',
'n',
'\0' };
935 static const WCHAR szWinKey[] = {
'S',
'O',
'F',
'T',
'W',
'A',
'R',
'E',
'\\',
936 'M',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
'W',
'i',
'n',
'd',
'o',
'w',
's',
'\\',
937 'C',
'u',
'r',
'r',
'e',
'n',
't',
'V',
'e',
'r',
's',
'i',
'o',
'n',
'\0' };
938 static const WCHAR szRegKey[] = {
'S',
'O',
'F',
'T',
'W',
'A',
'R',
'E',
'\\',
939 'M',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
'I',
'n',
't',
'e',
'r',
'n',
'e',
't',
940 ' ',
'E',
'x',
'p',
'l',
'o',
'r',
'e',
'r',
'\\',
941 'R',
'e',
'g',
'i',
's',
't',
'r',
'a',
't',
'i',
'o',
'n',
'\0' };
942 static const WCHAR szVersion[] = {
'V',
'e',
'r',
's',
'i',
'o',
'n',
'\0' };
943 static const WCHAR szCustomized[] = {
'C',
'u',
's',
't',
'o',
'm',
'i',
'z',
'e',
'd',
944 'V',
'e',
'r',
's',
'i',
'o',
'n',
'\0' };
945 static const WCHAR szOwner[] = {
'R',
'e',
'g',
'i',
's',
't',
'e',
'r',
'e',
'd',
946 'O',
'w',
'n',
'e',
'r',
'\0' };
947 static const WCHAR szOrg[] = {
'R',
'e',
'g',
'i',
's',
't',
'e',
'r',
'e',
'd',
948 'O',
'r',
'g',
'a',
'n',
'i',
'z',
'a',
't',
'i',
'o',
'n',
'\0' };
949 static const WCHAR szProduct[] = {
'P',
'r',
'o',
'd',
'u',
'c',
't',
'I',
'd',
'\0' };
950 static const WCHAR szUpdate[] = {
'I',
'E',
'A',
'K',
951 'U',
'p',
'd',
'a',
't',
'e',
'U',
'r',
'l',
'\0' };
952 static const WCHAR szHelp[] = {
'I',
'E',
'A',
'K',
953 'H',
'e',
'l',
'p',
'S',
't',
'r',
'i',
'n',
'g',
'\0' };
976 dwLen = 30 - dwStrLen;
978 szCustomized, &dwType,
buff+dwStrLen, &dwLen);
1042 ULONG cCmds, OLECMD *prgCmds, OLECMDTEXT* pCmdText)
1046 TRACE(
"(%p,%p,%d,%p,%p)\n",lpUnknown, pguidCmdGroup, cCmds, prgCmds, pCmdText);
1052 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IOleCommandTarget,
1057 hRet = IOleCommandTarget_QueryStatus(lpOle, pguidCmdGroup, cCmds,
1059 IOleCommandTarget_Release(lpOle);
1086 TRACE(
"(%p,%p,%d,%d,%p,%p)\n",lpUnknown, pguidCmdGroup, nCmdID,
1087 nCmdexecopt, pvaIn, pvaOut);
1093 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IOleCommandTarget,
1097 hRet = IOleCommandTarget_Exec(lpOle, pguidCmdGroup, nCmdID,
1098 nCmdexecopt, pvaIn, pvaOut);
1099 IOleCommandTarget_Release(lpOle);
1130 if (new_flags !=
ret)
1194 if(!lpUnknown || (fConnect && !lpUnkSink))
1201 (
void**)&lpContainer);
1204 hRet = IConnectionPointContainer_FindConnectionPoint(lpContainer,
riid, &lpCP);
1209 hRet = IConnectionPoint_Unadvise(lpCP, *lpCookie);
1211 hRet = IConnectionPoint_Advise(lpCP, lpUnkSink, lpCookie);
1219 IConnectionPoint_Release(lpCP);
1222 IConnectionPointContainer_Release(lpContainer);
1240 TRACE(
"(%p)\n", lpUnknown);
1242 if(!lpUnknown || !*lpUnknown)
return;
1244 TRACE(
"doing Release\n");
1246 IUnknown_Release(*lpUnknown);
1264 if (lpszSrc && lpszSrc[0] ==
'/' && lpszSrc[1] ==
'/')
1287 TRACE(
"(%p %p)\n", lpInt1, lpInt2);
1289 if (!lpInt1 || !lpInt2)
1292 if (lpInt1 == lpInt2)
1295 if (IUnknown_QueryInterface(lpInt1, &
IID_IUnknown, (
void**)&lpUnknown1) !=
S_OK)
1298 if (IUnknown_QueryInterface(lpInt2, &
IID_IUnknown, (
void**)&lpUnknown2) !=
S_OK)
1300 IUnknown_Release(lpUnknown1);
1304 ret = lpUnknown1 == lpUnknown2;
1306 IUnknown_Release(lpUnknown1);
1307 IUnknown_Release(lpUnknown2);
1334 TRACE(
"(%p,%p)\n", lpUnknown, lphWnd);
1339 hRet = IUnknown_QueryInterface(lpUnknown, &
IID_IOleWindow, (
void**)&lpOle);
1343 hRet = IUnknown_QueryInterface(lpUnknown,&IID_IShellView, (
void**)&lpOle);
1347 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IInternetSecurityMgrSite,
1357 hRet = IOleWindow_GetWindow((
IOleWindow*)lpOle, lphWnd);
1358 IUnknown_Release(lpOle);
1360 TRACE(
"Returning HWND=%p\n", *lphWnd);
1385 if (!iface)
return E_FAIL;
1387 hr = IUnknown_QueryInterface(iface, &IID_IShellService, (
void**)&service);
1390 hr = IShellService_SetOwner(service,
pUnk);
1391 IShellService_Release(service);
1415 TRACE(
"IID_IObjectWithSite QI ret=%08x, %p\n",
hr, iobjwithsite);
1418 hr = IObjectWithSite_SetSite(iobjwithsite,
site);
1419 TRACE(
"done IObjectWithSite_SetSite ret=%08x\n",
hr);
1420 IObjectWithSite_Release(iobjwithsite);
1424 hr = IUnknown_QueryInterface(
obj, &IID_IInternetSecurityManager, (
LPVOID *)&isecmgr);
1425 TRACE(
"IID_IInternetSecurityManager QI ret=%08x, %p\n",
hr, isecmgr);
1429 TRACE(
"done IInternetSecurityManager_SetSecuritySite ret=%08x\n",
hr);
1430 IInternetSecurityManager_Release(isecmgr);
1463 hr = IUnknown_QueryInterface(lpUnknown, &
IID_IPersist, (
void**)&persist);
1466 hr = IUnknown_QueryInterface(lpUnknown, &IID_IPersistFolder, (
void**)&persist);
1471 hr = IPersist_GetClassID(persist,
clsid);
1472 IPersist_Release(persist);
1508 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IServiceProvider,
1511 if (hRet ==
S_OK && pService)
1513 TRACE(
"QueryInterface returned (IServiceProvider*)%p\n", pService);
1516 hRet = IServiceProvider_QueryService(pService,
sid,
riid, lppOut);
1518 TRACE(
"(IServiceProvider*)%p returned (IUnknown*)%p\n", pService, *lppOut);
1520 IServiceProvider_Release(pService);
1558 hr = IOleCommandTarget_Exec(
target,
group, cmdId, cmdOpt, pIn, pOut);
1559 IOleCommandTarget_Release(
target);
1596 hr = IProfferService_ProfferService(proffer, service, pService, pCookie);
1599 hr = IProfferService_RevokeService(proffer, *pCookie);
1603 IProfferService_Release(proffer);
1628 IInputObject*
object =
NULL;
1635 ret = IUnknown_QueryInterface(
unknown, &IID_IInputObject, (
LPVOID*) &
object);
1720 data.uiMsgId = uiMsgId;
1749 TRACE(
"%p\n", hMenu);
1751 while (iItemCount >= 0)
1795 TRACE(
"%p, %u, %d\n", hMenu, uID, bCheck);
1824 DWORD dwEffect = DROPEFFECT_LINK | DROPEFFECT_MOVE | DROPEFFECT_COPY;
1827 TRACE(
"%p %p 0x%08x %p %p\n", pDrop, pDataObj, grfKeyState, lpPt, pdwEffect);
1833 pdwEffect = &dwEffect;
1835 IDropTarget_DragEnter(pDrop, pDataObj, grfKeyState, *lpPt, pdwEffect);
1837 if (*pdwEffect != DROPEFFECT_NONE)
1838 return IDropTarget_Drop(pDrop, pDataObj, grfKeyState, *lpPt, pdwEffect);
1840 IDropTarget_DragLeave(pDrop);
1862 TRACE(
"(%p,%p)\n", lpUnknown, lpPropBag);
1870 hRet = IPersistPropertyBag_Load(lpPPBag, lpPropBag,
NULL);
1871 IPersistPropertyBag_Release(lpPPBag);
1896 TRACE(
"(%p,%p,0x%08x)\n", lpUnknown, lpMsg, dwModifiers);
1903 hRet = IOleControlSite_TranslateAccelerator(lpCSite, lpMsg, dwModifiers);
1904 IOleControlSite_Release(lpCSite);
1929 TRACE(
"(%p, %d)\n", lpUnknown, fGotFocus);
1936 hRet = IOleControlSite_OnFocus(lpCSite, fGotFocus);
1937 IOleControlSite_Release(lpCSite);
1950 static const DWORD service_id[] = { 0xd12f26b2, 0x11d0d90a, 0xaa000d83, 0x83435b00 };
1952 static const DWORD function_id[] = { 0xd12f26b1, 0x11d0d90a, 0xaa000d83, 0x83435b00 };
1956 TRACE(
"(%p,%p,%p,%p,%p)\n", lpUnknown, lpArg1, lpArg2, lpArg3, lpArg4);
1958 if (lpUnknown && lpArg4)
1961 (
REFGUID)function_id, (
void**)&lpUnkInner);
1970 hRet = IParseDisplayName_ParseDisplayName((LPPARSEDISPLAYNAME)lpUnkInner,
1971 lpArg1, lpArg2, lpArg3, lpArg4);
1972 IUnknown_Release(lpUnkInner);
1994 TRACE(
"(%p,%u)\n", hMenu, uID);
2086 if (lpFolder && pidl)
2088 hRet = IShellFolder_GetUIObjectOf(lpFolder,
NULL, 1, &pidl, &IID_IQueryInfo,
2089 NULL, (
void**)&lpInfo);
2156 if (lpKeys && lpValues)
2162 if (lpKeys[
i] == iKey)
2185 TRACE(
"(%p,%p)\n", lppDest, lpUnknown);
2191 IUnknown_AddRef(lpUnknown);
2192 *lppDest = lpUnknown;
2202 OLECMD *prgCmds, OLECMDTEXT* pCmdText)
2204 FIXME(
"(%p,%p,%p,%d,%p,%p) - stub\n",
2205 lpUnknown, lpReserved, riidCmdGrp, cCmds, prgCmds, pCmdText);
2219 FIXME(
"(%p,%d,%p,%d,%d,%p,%p) - stub!\n", lpUnknown, iUnk, pguidCmdGroup,
2220 nCmdID, nCmdexecopt, pvaIn, pvaOut);
2230 FIXME(
"(%p,%d,%p) - stub!\n", pguidCmdGroup, cCmds, prgCmds);
2253 else if(hParent ==
hChild)
2272#define FDSA_FLAG_INTERNAL_ALLOC 0x01
2290 info->num_items = 0;
2293 info->blocks_alloced = init_blocks;
2326 if(where >
info->num_items)
2327 where =
info->num_items;
2329 if(
info->num_items >=
info->blocks_alloced)
2332 if(
info->flags & 0x1)
2336 void *old_mem =
info->mem;
2344 if(where < info->num_items)
2347 (
char*)
info->mem + where *
info->block_size,
2348 (
info->num_items - where) *
info->block_size);
2365 if(where >=
info->num_items)
2368 if(where < info->num_items - 1)
2371 (
char*)
info->mem + (where + 1) *
info->block_size,
2372 (
info->num_items - where - 1) *
info->block_size);
2375 0,
info->block_size);
2402 while (xmove->
piid) {
2406 TRACE(
"matched, returning (%p)\n", a_vtbl);
2408 IUnknown_AddRef(a_vtbl);
2416 TRACE(
"returning first for IUnknown (%p)\n", a_vtbl);
2418 IUnknown_AddRef(a_vtbl);
2494 strcpy(
string,
"CLSID\\");
2496 strcat(
string,
"\\InProcServer32");
2538 TRACE(
"(%p,%p,%d)\n",
hInst, lppClasses, iCount);
2558 TRACE(
"(%p,%p,%d)\n",
hInst, lppClasses, iCount);
2596 LPOBJECTWITHSITE lpSite =
NULL;
2600 if (lpUnknown && iid && lppSite)
2606 hRet = IObjectWithSite_GetSite(lpSite, iid, lppSite);
2607 IObjectWithSite_Release(lpSite);
2633 static const char szClass[] =
"WorkerA";
2637 TRACE(
"(%p, %p, 0x%08x, 0x%08x, %p, 0x%08lx)\n",
2672#define SHELL_NO_POLICY 0xffffffff
2675static const WCHAR strRegistryPolicyW[] = {
'S',
'o',
'f',
't',
'w',
'a',
'r',
'e',
'\\',
'M',
'i',
'c',
'r',
'o',
2676 's',
'o',
'f',
't',
'\\',
'W',
'i',
'n',
'd',
'o',
'w',
's',
'\\',
2677 'C',
'u',
'r',
'r',
'e',
'n',
't',
'V',
'e',
'r',
's',
'i',
'o',
'n',
2678 '\\',
'P',
'o',
'l',
'i',
'c',
'i',
'e',
's',0};
2695 DWORD retval, datsize =
sizeof(retval);
2740 if (!polTable || !polArr)
2743 for (;polTable->
policy; polTable++, polArr++)
2785 if(
pUnk && pInner) {
2786 hret = IUnknown_QueryInterface(pInner,
riid,
ppv);
2789 TRACE(
"-- 0x%08x\n", hret);
2807 TRACE(
"(%p,%p)\n", lpDest, lppUnknown);
2812 IUnknown_AddRef(lpDest);
2867 static const char szIntegratedBrowser[] =
"IntegratedBrowser";
2868 static DWORD dwState = 0;
2883 dwState = pDllGetVersion ? 2 : 1;
2889 "Software\\Microsoft\\Internet Explorer", 0,
2896 if (!dwRet && dwState == 1)
2901 else if (dwRet && dwState == 2)
2921 static const WCHAR szClass[] = {
'W',
'o',
'r',
'k',
'e',
'r',
'W', 0 };
2925 TRACE(
"(%p, %p, 0x%08x, 0x%08x, %p, 0x%08lx)\n",
2976 TRACE(
"%p %p %p\n",
hWnd, lpFolder, lpApidl);
2998 while(iter-- >
args) {
3006 switch(
V_VT(iter)) {
3059 DISPPARAMS* dispParams)
3064 DISPPARAMS*
params = dispParams;
3066 HRESULT result = IConnectionPoint_EnumConnections(iCP, &enumerator);
3074 while(IEnumConnections_Next(enumerator, 1, &rgcd,
NULL)==
S_OK)
3077 if ((iid &&
SUCCEEDED(IUnknown_QueryInterface(rgcd.pUnk, iid, (
LPVOID*)&dispIface))) ||
3081 IDispatch_Release(dispIface);
3083 IUnknown_Release(rgcd.pUnk);
3086 IEnumConnections_Release(enumerator);
3095 DISPID dispId, DISPPARAMS* dispParams,
3101 FIXME(
"(%p)->(0x%x %p %x %x) partial stub\n", iCP, dispId, dispParams, unknown1, unknown2);
3103 result = IConnectionPoint_GetConnectionInterface(iCP, &iid);
3121 DISPPARAMS* dispParams)
3126 TRACE(
"(%p)->(0x%x %p)\n",iCP,dispId,dispParams);
3128 result = IConnectionPoint_GetConnectionInterface(iCP, &iid);
3156 TRACE(
"(%p,0x%8X)\n", lpCP, dispID);
3160 hRet = IConnectionPoint_EnumConnections(lpCP, &lpEnum);
3165 CONNECTDATA connData;
3169 while (IEnumConnections_Next(lpEnum, 1, &connData, &ulFetched) ==
S_OK)
3174 IPropertyNotifySink_OnChanged(lpSink, dispID);
3175 IPropertyNotifySink_Release(lpSink);
3177 IUnknown_Release(connData.pUnk);
3180 IEnumConnections_Release(lpEnum);
3200 DISPPARAMS dispParams = {
buffer,
NULL, cParams, 0};
3210 result = IConnectionPointContainer_FindConnectionPoint(iCPC,
riid, &iCP);
3211 IConnectionPointContainer_Release(iCPC);
3220 IConnectionPoint_Release(iCP);
3244 TRACE(
"(%p,0x%8X)\n", lpUnknown, dispID);
3254 IConnectionPointContainer_Release(lpCPC);
3257 IConnectionPoint_Release(lpCP);
3444#define IsIface(type) SUCCEEDED((hRet = IUnknown_QueryInterface(lpUnknown, &IID_##type, (void**)&lpObj)))
3445#define IShellBrowser_EnableModeless IShellBrowser_EnableModelessSB
3446#define EnableModeless(type) type##_EnableModeless((type*)lpObj, bModeless)
3472 TRACE(
"(%p,%d)\n", lpUnknown, bModeless);
3490 IUnknown_Release(lpObj);
3537 TRACE(
"(%p, %p, %p, %u)\n",
hWnd, lpFolder, lpApidl, dwCommandId);
3543 hRet = IShellFolder_GetUIObjectOf(lpFolder,
hWnd, 1, &lpApidl,
3544 &IID_IContextMenu, 0, (
void**)&iContext);
3553 hQuery = IContextMenu_QueryContextMenu(iContext, hMenu, 0, 1, 0x7FFF,
3554 dwCommandId ? CMF_NORMAL : CMF_DEFAULTONLY);
3560 if (dwCommandId != (
UINT)-1)
3562 CMINVOKECOMMANDINFO cmIci;
3564 memset(&cmIci,0,
sizeof(cmIci));
3565 cmIci.cbSize =
sizeof(cmIci);
3566 cmIci.fMask = CMIC_MASK_ASYNCOK;
3575 hRet = IContextMenu_InvokeCommand(iContext, &cmIci);
3580 IContextMenu_Release(iContext);
3634 FIXME(
"(%s,%p,%d) semi-stub!\n",
debugstr_a(new_mod), inst_hwnd, dwCrossCodePage);
3636 if (!
len ||
len >=
sizeof(mod_path))
return NULL;
3658 FIXME(
"(%s,%p,%d) semi-stub!\n",
debugstr_w(new_mod), inst_hwnd, dwCrossCodePage);
3686 TRACE(
"(0x%8x,%d,%d)\n", cRGB, dwLuma, bUnknown);
3694 FIXME(
"Ignoring luma adjustment\n");
3731 return WNetGetLastErrorW(lpError, lpErrorBuf, nErrorBufSize, lpNameBuf, nNameBufSize);
3781 return IShellFolder_EnumObjects(lpFolder,
hwnd,
flags, ppenum);
3787 wHue = wHue > 240 ? wHue - 240 : wHue < 0 ? wHue + 240 : wHue;
3791 else if (wHue > 120)
3796 return ((wHue * (wMid2 - wMid1) + 20) / 40) + wMid1;
3800#define GET_RGB(h) (ConvertHue(h, wMid1, wMid2) * 255 + 120) / 240
3824 WORD wGreen, wBlue, wMid1, wMid2;
3826 if (wLuminosity > 120)
3827 wMid2 = wSaturation + wLuminosity - (wSaturation * wLuminosity + 120) / 240;
3829 wMid2 = ((wSaturation + 240) * wLuminosity + 120) / 240;
3831 wMid1 = wLuminosity * 2 - wMid2;
3837 return RGB(wRed, wGreen, wBlue);
3840 wRed = wLuminosity * 255 / 240;
3841 return RGB(wRed, wRed, wRed);
3948 FIXME(
"(0x%08x)stub\n",
x);
4012 ERR(
"GetVersionEx failed\n");
4020#define ISOS_RETURN(x) \
4021 TRACE("(0x%x) ret=%d\n",feature,(x)); \
4052 FIXME(
"(OS_EMBEDDED) What should we return here?\n");
4055 FIXME(
"(OS_TERMINALCLIENT) What should we return here?\n");
4058 FIXME(
"(OS_TERMINALREMOTEADMIN) What should we return here?\n");
4081 FIXME(
"(OS_FASTUSERSWITCHING) What should we return here?\n");
4084 FIXME(
"(OS_WELCOMELOGONUI) What should we return here?\n");
4087 FIXME(
"(OS_DOMAINMEMBER) What should we return here?\n");
4102 FIXME(
"(OS_TABLETPC) What should we return here?\n");
4105 FIXME(
"(OS_SERVERADMINUI) What should we return here?\n");
4108 FIXME(
"(OS_MEDIACENTER) What should we return here?\n");
4111 FIXME(
"(OS_APPLIANCE) What should we return here?\n");
4179 IInputObject* lpInput =
NULL;
4182 TRACE(
"(%p,%p)\n", lpUnknown, lpMsg);
4185 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IInputObject,
4211 IInputObject* lpInput =
NULL;
4214 TRACE(
"(%p)\n", lpUnknown);
4217 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IInputObject,
4250 int wR, wG, wB, wMax, wMin, wHue, wLuminosity, wSaturation;
4252 TRACE(
"(%08x,%p,%p,%p)\n", cRGB, pwHue, pwLuminance, pwSaturation);
4258 wMax =
max(wR,
max(wG, wB));
4259 wMin =
min(wR,
min(wG, wB));
4262 wLuminosity = ((wMax + wMin) * 240 + 255) / 510;
4274 int wDelta = wMax - wMin, wRNorm, wGNorm, wBNorm;
4277 if (wLuminosity <= 120)
4278 wSaturation = ((wMax + wMin)/2 + wDelta * 240) / (wMax + wMin);
4280 wSaturation = ((510 - wMax - wMin)/2 + wDelta * 240) / (510 - wMax - wMin);
4283 wRNorm = (wDelta/2 + wMax * 40 - wR * 40) / wDelta;
4284 wGNorm = (wDelta/2 + wMax * 40 - wG * 40) / wDelta;
4285 wBNorm = (wDelta/2 + wMax * 40 - wB * 40) / wDelta;
4288 wHue = wBNorm - wGNorm;
4289 else if (wG == wMax)
4290 wHue = 80 + wRNorm - wBNorm;
4292 wHue = 160 + wGNorm - wRNorm;
4295 else if (wHue > 240)
4301 *pwLuminance = wLuminosity;
4303 *pwSaturation = wSaturation;
4340 FIXME(
" - returning bogus address for SHGetInverseCMAP\n");
4364 static int is_low = -1;
4365 TRACE(
"(0x%08x)\n", dwType);
4366 if (dwType == 0 && is_low == -1)
4369 is_low = (
status.dwTotalPhys <= 0x1000000);
4373 FIXME(
"(0x%08x) stub\n", dwType);
4396 TRACE(
"%p %u\n", hMenu, wID);
4398 while (nIter < nCount)
4404 TRACE(
"ret %d\n", nIter);
4420 TRACE(
"%p %u\n", hMenu, uID);
4444 FIXME(
"(0x%08x) stub\n", dwUnknown);
4474 static WCHAR szSkipBinding[] = {
'S',
'k',
'i',
'p',
' ',
4475 'B',
'i',
'n',
'd',
'i',
'n',
'g',
' ',
'C',
'L',
'S',
'I',
'D',
'\0' };
4482 if (
SUCCEEDED(IBindCtx_GetObjectParam(pbc, szSkipBinding, &lpUnk)))
4490 IUnknown_Release(lpUnk);
4517 static const WCHAR explorerW[] = {
'S',
'o',
'f',
't',
'w',
'a',
'r',
'e',
'\\',
4518 'M',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
'W',
'i',
'n',
'd',
'o',
'w',
's',
'\\',
4519 'C',
'u',
'r',
'r',
'e',
'n',
't',
'V',
'e',
'r',
's',
'i',
'o',
'n',
'\\',
4520 'E',
'x',
'p',
'l',
'o',
'r',
'e',
'r',
'\\'};
4521 static const WCHAR shellW[] = {
'S',
'o',
'f',
't',
'w',
'a',
'r',
'e',
'\\',
4522 'M',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
'W',
'i',
'n',
'd',
'o',
'w',
's',
'\\',
4523 'S',
'h',
'e',
'l',
'l',
'\\'};
4524 static const WCHAR shell_no_roamW[] = {
'S',
'o',
'f',
't',
'w',
'a',
'r',
'e',
'\\',
4525 'M',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
'W',
'i',
'n',
'd',
'o',
'w',
's',
'\\',
4526 'S',
'h',
'e',
'l',
'l',
'N',
'o',
'R',
'o',
'a',
'm',
'\\'};
4527 static const WCHAR classesW[] = {
'S',
'o',
'f',
't',
'w',
'a',
'r',
'e',
'\\',
4528 'C',
'l',
'a',
's',
's',
'e',
's',
'\\'};
4530 static const WCHAR localized_resource_nameW[] = {
'L',
'o',
'c',
'a',
'l',
'i',
'z',
'e',
'd',
4531 'R',
'e',
's',
'o',
'u',
'r',
'c',
'e',
'N',
'a',
'm',
'e',
'\\'};
4532 static const WCHAR handlersW[] = {
'H',
'a',
'n',
'd',
'l',
'e',
'r',
's',
'\\'};
4533 static const WCHAR associationsW[] = {
'A',
's',
's',
'o',
'c',
'i',
'a',
't',
'i',
'o',
'n',
's',
'\\'};
4534 static const WCHAR volatileW[] = {
'V',
'o',
'l',
'a',
't',
'i',
'l',
'e',
'\\'};
4535 static const WCHAR mui_cacheW[] = {
'M',
'U',
'I',
'C',
'a',
'c',
'h',
'e',
'\\'};
4536 static const WCHAR file_extsW[] = {
'F',
'i',
'l',
'e',
'E',
'x',
't',
's',
'\\'};
4540 int size_key, size_subkey, size_user;
4546 if(
flags == 0x1ffff)
4549 switch(
flags&0xff0) {
4552 size_key =
sizeof(explorerW);
4556 size_key =
sizeof(shellW);
4559 key = shell_no_roamW;
4560 size_key =
sizeof(shell_no_roamW);
4564 size_key =
sizeof(classesW);
4567 FIXME(
"unsupported flags (0x%08x)\n",
flags);
4571 switch(
flags&0xff000) {
4577 subkey = localized_resource_nameW;
4578 size_subkey =
sizeof(localized_resource_nameW);
4582 size_subkey =
sizeof(handlersW);
4585 subkey = associationsW;
4586 size_subkey =
sizeof(associationsW);
4590 size_subkey =
sizeof(volatileW);
4593 subkey = mui_cacheW;
4594 size_subkey =
sizeof(mui_cacheW);
4597 subkey = file_extsW;
4598 size_subkey =
sizeof(file_extsW);
4601 FIXME(
"unsupported flags (0x%08x)\n",
flags);
4612 ERR(
"Out of memory\n");
4620 memcpy(
path+(size_key+size_subkey)/
sizeof(
WCHAR), sub_key, size_user);
4621 path[(size_key+size_subkey+size_user)/
sizeof(
WCHAR)] =
'\0';
4641 TRACE(
"(%p, %p, %d, %lx, %p, %s, %08x)\n", pfnCallback, pContext,
4644 if(lPriority || dwTag || pdwId || pszModule ||
dwFlags)
4645 FIXME(
"Unsupported arguments\n");
4670 dwDueTime, dwPeriod,
dwFlags))
4681 IInputObjectSite *pIOS =
NULL;
4684 TRACE(
"(%p, %p, %s)\n", lpUnknown, pFocusObject, bFocus ?
"TRUE" :
"FALSE");
4688 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IInputObjectSite,