24 #include "wine/port.h" 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)
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 2675 static 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)) {
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);
3101 FIXME(
"(%p)->(0x%x %p %x %x) partial stub\n", iCP, dispId, dispParams, unknown1, unknown2);
3103 result = IConnectionPoint_GetConnectionInterface(iCP, &iid);
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);
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");
4152 IInputObject* lpInput =
NULL;
4155 TRACE(
"(%p,%p)\n", lpUnknown, lpMsg);
4158 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IInputObject,
4184 IInputObject* lpInput =
NULL;
4187 TRACE(
"(%p)\n", lpUnknown);
4190 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IInputObject,
4223 int wR, wG, wB, wMax, wMin, wHue, wLuminosity, wSaturation;
4225 TRACE(
"(%08x,%p,%p,%p)\n", cRGB, pwHue, pwLuminance, pwSaturation);
4231 wMax =
max(wR,
max(wG, wB));
4232 wMin =
min(wR,
min(wG, wB));
4235 wLuminosity = ((wMax + wMin) * 240 + 255) / 510;
4247 int wDelta = wMax - wMin, wRNorm, wGNorm, wBNorm;
4250 if (wLuminosity <= 120)
4251 wSaturation = ((wMax + wMin)/2 + wDelta * 240) / (wMax + wMin);
4253 wSaturation = ((510 - wMax - wMin)/2 + wDelta * 240) / (510 - wMax - wMin);
4256 wRNorm = (wDelta/2 + wMax * 40 - wR * 40) / wDelta;
4257 wGNorm = (wDelta/2 + wMax * 40 - wG * 40) / wDelta;
4258 wBNorm = (wDelta/2 + wMax * 40 - wB * 40) / wDelta;
4261 wHue = wBNorm - wGNorm;
4262 else if (wG == wMax)
4263 wHue = 80 + wRNorm - wBNorm;
4265 wHue = 160 + wGNorm - wRNorm;
4268 else if (wHue > 240)
4274 *pwLuminance = wLuminosity;
4276 *pwSaturation = wSaturation;
4313 FIXME(
" - returning bogus address for SHGetInverseCMAP\n");
4337 static int is_low = -1;
4338 TRACE(
"(0x%08x)\n", dwType);
4339 if (dwType == 0 && is_low == -1)
4342 is_low = (
status.dwTotalPhys <= 0x1000000);
4346 FIXME(
"(0x%08x) stub\n", dwType);
4369 TRACE(
"%p %u\n", hMenu, wID);
4371 while (nIter < nCount)
4377 TRACE(
"ret %d\n", nIter);
4393 TRACE(
"%p %u\n", hMenu, uID);
4417 FIXME(
"(0x%08x) stub\n", dwUnknown);
4447 static WCHAR szSkipBinding[] = {
'S',
'k',
'i',
'p',
' ',
4448 'B',
'i',
'n',
'd',
'i',
'n',
'g',
' ',
'C',
'L',
'S',
'I',
'D',
'\0' };
4455 if (
SUCCEEDED(IBindCtx_GetObjectParam(pbc, szSkipBinding, &lpUnk)))
4463 IUnknown_Release(lpUnk);
4490 static const WCHAR explorerW[] = {
'S',
'o',
'f',
't',
'w',
'a',
'r',
'e',
'\\',
4491 'M',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
'W',
'i',
'n',
'd',
'o',
'w',
's',
'\\',
4492 'C',
'u',
'r',
'r',
'e',
'n',
't',
'V',
'e',
'r',
's',
'i',
'o',
'n',
'\\',
4493 'E',
'x',
'p',
'l',
'o',
'r',
'e',
'r',
'\\'};
4494 static const WCHAR shellW[] = {
'S',
'o',
'f',
't',
'w',
'a',
'r',
'e',
'\\',
4495 'M',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
'W',
'i',
'n',
'd',
'o',
'w',
's',
'\\',
4496 'S',
'h',
'e',
'l',
'l',
'\\'};
4497 static const WCHAR shell_no_roamW[] = {
'S',
'o',
'f',
't',
'w',
'a',
'r',
'e',
'\\',
4498 'M',
'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
'W',
'i',
'n',
'd',
'o',
'w',
's',
'\\',
4499 'S',
'h',
'e',
'l',
'l',
'N',
'o',
'R',
'o',
'a',
'm',
'\\'};
4500 static const WCHAR classesW[] = {
'S',
'o',
'f',
't',
'w',
'a',
'r',
'e',
'\\',
4501 'C',
'l',
'a',
's',
's',
'e',
's',
'\\'};
4503 static const WCHAR localized_resource_nameW[] = {
'L',
'o',
'c',
'a',
'l',
'i',
'z',
'e',
'd',
4504 'R',
'e',
's',
'o',
'u',
'r',
'c',
'e',
'N',
'a',
'm',
'e',
'\\'};
4505 static const WCHAR handlersW[] = {
'H',
'a',
'n',
'd',
'l',
'e',
'r',
's',
'\\'};
4506 static const WCHAR associationsW[] = {
'A',
's',
's',
'o',
'c',
'i',
'a',
't',
'i',
'o',
'n',
's',
'\\'};
4507 static const WCHAR volatileW[] = {
'V',
'o',
'l',
'a',
't',
'i',
'l',
'e',
'\\'};
4508 static const WCHAR mui_cacheW[] = {
'M',
'U',
'I',
'C',
'a',
'c',
'h',
'e',
'\\'};
4509 static const WCHAR file_extsW[] = {
'F',
'i',
'l',
'e',
'E',
'x',
't',
's',
'\\'};
4513 int size_key, size_subkey, size_user;
4519 if(
flags == 0x1ffff)
4522 switch(
flags&0xff0) {
4525 size_key =
sizeof(explorerW);
4529 size_key =
sizeof(shellW);
4532 key = shell_no_roamW;
4533 size_key =
sizeof(shell_no_roamW);
4537 size_key =
sizeof(classesW);
4540 FIXME(
"unsupported flags (0x%08x)\n",
flags);
4544 switch(
flags&0xff000) {
4550 subkey = localized_resource_nameW;
4551 size_subkey =
sizeof(localized_resource_nameW);
4555 size_subkey =
sizeof(handlersW);
4558 subkey = associationsW;
4559 size_subkey =
sizeof(associationsW);
4563 size_subkey =
sizeof(volatileW);
4566 subkey = mui_cacheW;
4567 size_subkey =
sizeof(mui_cacheW);
4570 subkey = file_extsW;
4571 size_subkey =
sizeof(file_extsW);
4574 FIXME(
"unsupported flags (0x%08x)\n",
flags);
4585 ERR(
"Out of memory\n");
4593 memcpy(
path+(size_key+size_subkey)/
sizeof(
WCHAR), sub_key, size_user);
4594 path[(size_key+size_subkey+size_user)/
sizeof(
WCHAR)] =
'\0';
4614 TRACE(
"(%p, %p, %d, %lx, %p, %s, %08x)\n", pfnCallback, pContext,
4617 if(lPriority || dwTag || pdwId || pszModule ||
dwFlags)
4618 FIXME(
"Unsupported arguments\n");
4643 dwDueTime, dwPeriod,
dwFlags))
4654 IInputObjectSite *pIOS =
NULL;
4657 TRACE(
"(%p, %p, %s)\n", lpUnknown, pFocusObject, bFocus ?
"TRUE" :
"FALSE");
4661 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IInputObjectSite,
4842 pszTitle = lpCaption;
4856 WARN(
"Failed to load id %d\n",
LOWORD(lpText));
4937 TRACE(
"%p %d\n", apUserPerm, cUserPerm);
4939 if (apUserPerm ==
NULL || cUserPerm <= 0)
4946 acl_size =
sizeof(
ACL);
4948 for(sid_count = 0; sid_count < cUserPerm; sid_count++)
4973 }
else if (
sid->dwUserID==0)
4975 0, 0, 0, 0, 0, 0, &
pSid);
4978 0, 0, 0, 0, 0, 0, &
pSid);
4982 sidlist[sid_count] =
pSid;