ReactOS 0.4.15-dev-5672-gf73ac17
shdocvw_main.c
Go to the documentation of this file.
1/*
2 * SHDOCVW - Internet Explorer Web Control
3 *
4 * Copyright 2001 John R. Sheets (for CodeWeavers)
5 * Copyright 2004 Mike McCormack (for CodeWeavers)
6 * Copyright 2008 Detlef Riekenberg
7 *
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
12 *
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
17 *
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 */
22
23#include <stdarg.h>
24#include <stdio.h>
25
26#include "wine/debug.h"
27
28#include "shdocvw.h"
29
30#include "winreg.h"
31#ifdef __REACTOS__
32#include "winnls.h"
33#endif
34#include "shlwapi.h"
35#include "wininet.h"
36#include "isguids.h"
37
38#include "initguid.h"
39
41
43
46
48{
49 static const WCHAR ieframe_dllW[] = {'i','e','f','r','a','m','e','.','d','l','l',0};
50
52 ieframe_instance = LoadLibraryW(ieframe_dllW);
53
54 return ieframe_instance;
55}
56
58{
60
61 static HRESULT (WINAPI *ieframe_DllGetClassObject)(REFCLSID,REFIID,void**);
62
63 if(!ieframe_DllGetClassObject) {
67
68 ieframe_DllGetClassObject = (void*)GetProcAddress(ieframe_instance, "DllGetClassObject");
69 if(!ieframe_DllGetClassObject)
71 }
72
73 return ieframe_DllGetClassObject(rclsid, riid, ppv);
74}
75
76/*************************************************************************
77 * DllGetClassObject (SHDOCVW.@)
78 */
80{
81 TRACE("(%s %s %p)\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv);
82
83 if(IsEqualGUID(&CLSID_WebBrowser, rclsid)
84 || IsEqualGUID(&CLSID_WebBrowser_V1, rclsid)
85 || IsEqualGUID(&CLSID_InternetShortcut, rclsid)
86 || IsEqualGUID(&CLSID_CUrlHistory, rclsid)
87 || IsEqualGUID(&CLSID_TaskbarList, rclsid))
88 return get_ieframe_object(rclsid, riid, ppv);
89
90 /* As a last resort, figure if the CLSID belongs to a 'Shell Instance Object' */
92}
93
94/***********************************************************************
95 * DllRegisterServer (shdocvw.@)
96 */
98{
99 TRACE("\n");
100 return S_OK;
101}
102
103/***********************************************************************
104 * DllUnregisterServer (shdocvw.@)
105 */
107{
108 TRACE("\n");
109 return S_OK;
110}
111
112/******************************************************************
113 * IEWinMain (SHDOCVW.101)
114 *
115 * Only returns on error.
116 */
117DWORD WINAPI IEWinMain(LPSTR szCommandLine, int nShowWindow)
118{
119 DWORD (WINAPI *pIEWinMain)(const WCHAR*,int);
120 WCHAR *cmdline;
121 DWORD ret, len;
122
123 TRACE("%s %d\n", debugstr_a(szCommandLine), nShowWindow);
124
125 pIEWinMain = (void*)GetProcAddress(get_ieframe_instance(), MAKEINTRESOURCEA(101));
126 if(!pIEWinMain)
127 ExitProcess(1);
128
129 len = MultiByteToWideChar(CP_ACP, 0, szCommandLine, -1, NULL, 0);
130 cmdline = heap_alloc(len*sizeof(WCHAR));
131 if(!cmdline)
132 ExitProcess(1);
133 MultiByteToWideChar(CP_ACP, 0, szCommandLine, -1, cmdline, len);
134
135 ret = pIEWinMain(cmdline, nShowWindow);
136
138 return ret;
139}
140
141/*************************************************************************
142 * SHDOCVW DllMain
143 */
145{
146 TRACE("%p 0x%x %p\n", hinst, fdwReason, fImpLoad);
147 switch (fdwReason)
148 {
151 break;
153 if (fImpLoad) break;
156 break;
157 }
158 return TRUE;
159}
160
161/*************************************************************************
162 * DllCanUnloadNow (SHDOCVW.@)
163 */
165{
166 return SHDOCVW_refCount ? S_FALSE : S_OK;
167}
168
169/***********************************************************************
170 * DllGetVersion (SHDOCVW.@)
171 */
173{
174 if (info->cbSize != sizeof(DLLVERSIONINFO)) FIXME("support DLLVERSIONINFO2\n");
175
176 /* this is what IE6 on Windows 98 reports */
177 info->dwMajorVersion = 6;
178 info->dwMinorVersion = 0;
179 info->dwBuildNumber = 2600;
180 info->dwPlatformID = DLLVER_PLATFORM_WINDOWS;
181
182 return NOERROR;
183}
184
185/*************************************************************************
186 * DllInstall (SHDOCVW.@)
187 */
189{
190 FIXME("(%s, %s): stub!\n", bInstall ? "TRUE":"FALSE", debugstr_w(cmdline));
191
192 return S_OK;
193}
194
195/*************************************************************************
196 * SHDOCVW_LoadShell32
197 *
198 * makes sure the handle to shell32 is valid
199 */
201{
203 return TRUE;
204 return ((SHDOCVW_hshell32 = LoadLibraryA("shell32.dll")) != NULL);
205}
206
207/***********************************************************************
208 * @ (SHDOCVW.110)
209 *
210 * Called by Win98 explorer.exe main binary, definitely has 0
211 * parameters.
212 */
214{
215 FIXME("(), stub!\n");
216 return 0x0deadfeed;
217}
218
219/***********************************************************************
220 * @ (SHDOCVW.118)
221 *
222 * Called by Win98 explorer.exe main binary, definitely has only one
223 * parameter.
224 */
225static BOOL (WINAPI *pShellDDEInit)(BOOL start) = NULL;
226
228{
229 TRACE("(%d)\n", start);
230
231 if (!pShellDDEInit)
232 {
233 if (!SHDOCVW_LoadShell32())
234 return FALSE;
235 pShellDDEInit = (void *)GetProcAddress(SHDOCVW_hshell32, (LPCSTR)188);
236 }
237
238 if (pShellDDEInit)
239 return pShellDDEInit(start);
240 else
241 return FALSE;
242}
243
244/***********************************************************************
245 * @ (SHDOCVW.125)
246 *
247 * Called by Win98 explorer.exe main binary, definitely has 0
248 * parameters.
249 */
251{
252 FIXME("(), stub!\n");
253 return 0x0deadbee;
254}
255
256/***********************************************************************
257 * @ (SHDOCVW.130)
258 *
259 * Called by Emerge Desktop (alternative Windows Shell).
260 */
262{
263 FIXME("(%d), stub!\n", arg);
264 return 0x0deadbee;
265}
266
267/***********************************************************************
268 * SetQueryNetSessionCount (SHDOCVW.@)
269 */
271{
272 FIXME("(%u), stub!\n", arg);
273 return 0;
274}
275
276/**********************************************************************
277 * Some forwards (by ordinal) to SHLWAPI
278 */
279
281{
282 static const WCHAR shlwapiW[] = {'s','h','l','w','a','p','i','.','d','l','l','\0'};
283 static HANDLE h;
284
285 if (!h && !(h = GetModuleHandleW(shlwapiW))) return NULL;
286 return (void*)GetProcAddress(h, (const char*)ord);
287}
288
289/******************************************************************
290 * WhichPlatformFORWARD (SHDOCVW.@)
291 */
293{
294 static DWORD (WINAPI *p)(void);
295
296 if (p || (p = fetch_shlwapi_ordinal(276))) return p();
297 return 1; /* not integrated, see shlwapi.WhichPlatform */
298}
299
300/******************************************************************
301 * StopWatchModeFORWARD (SHDOCVW.@)
302 */
304{
305 static void (WINAPI *p)(void);
306
307 if (p || (p = fetch_shlwapi_ordinal(241))) p();
308}
309
310/******************************************************************
311 * StopWatchFlushFORWARD (SHDOCVW.@)
312 */
314{
315 static void (WINAPI *p)(void);
316
317 if (p || (p = fetch_shlwapi_ordinal(242))) p();
318}
319
320/******************************************************************
321 * StopWatchAFORWARD (SHDOCVW.@)
322 */
323DWORD WINAPI StopWatchAFORWARD(DWORD dwClass, LPCSTR lpszStr, DWORD dwUnknown,
324 DWORD dwMode, DWORD dwTimeStamp)
325{
326 static DWORD (WINAPI *p)(DWORD, LPCSTR, DWORD, DWORD, DWORD);
327
328 if (p || (p = fetch_shlwapi_ordinal(243)))
329 return p(dwClass, lpszStr, dwUnknown, dwMode, dwTimeStamp);
331}
332
333/******************************************************************
334 * StopWatchWFORWARD (SHDOCVW.@)
335 */
336DWORD WINAPI StopWatchWFORWARD(DWORD dwClass, LPCWSTR lpszStr, DWORD dwUnknown,
337 DWORD dwMode, DWORD dwTimeStamp)
338{
339 static DWORD (WINAPI *p)(DWORD, LPCWSTR, DWORD, DWORD, DWORD);
340
341 if (p || (p = fetch_shlwapi_ordinal(244)))
342 return p(dwClass, lpszStr, dwUnknown, dwMode, dwTimeStamp);
344}
345
346/******************************************************************
347 * URLSubRegQueryA (SHDOCVW.151)
348 */
350 LPSTR out, DWORD outlen, DWORD unknown)
351{
353 DWORD len;
354 LONG res;
355
356 TRACE("(%s, %s, %d, %p, %d, %d)\n", debugstr_a(regpath), debugstr_a(name),
357 type, out, outlen, unknown);
358
359 if (!out) return S_OK;
360
361 len = sizeof(buffer);
362 res = SHRegGetUSValueA(regpath, name, NULL, buffer, &len, FALSE, NULL, 0);
363 if (!res) {
364 lstrcpynA(out, buffer, outlen);
365 return S_OK;
366 }
367
368 return E_FAIL;
369}
370
371/******************************************************************
372 * ParseURLFromOutsideSourceW (SHDOCVW.170)
373 */
375{
377 WCHAR buffer_out[INTERNET_MAX_URL_LENGTH];
378 LPCWSTR ptr = url;
379 HRESULT hr;
380 DWORD needed;
381 DWORD len;
382 DWORD res;
383
384 TRACE("(%s, %p, %p, %p) len: %d, unknown: 0x%x\n", debugstr_w(url), out, plen, unknown,
385 plen ? *plen : 0, unknown ? *unknown : 0);
386
387 if (!PathIsURLW(ptr)) {
388 len = ARRAY_SIZE(buffer_in);
389 buffer_in[0] = 0;
391 TRACE("got 0x%x with %s\n", hr, debugstr_w(buffer_in));
392 if (hr == S_OK) {
393 /* we parsed the url to buffer_in */
394 ptr = buffer_in;
395 }
396 else
397 {
398 FIXME("call search hook for %s\n", debugstr_w(ptr));
399 }
400 }
401
402 len = ARRAY_SIZE(buffer_out);
403 buffer_out[0] = '\0';
405 needed = lstrlenW(buffer_out)+1;
406 TRACE("got 0x%x with %s (need %d)\n", hr, debugstr_w(buffer_out), needed);
407
408 res = 0;
409 if (*plen >= needed) {
410 if (out != NULL) {
411 lstrcpyW(out, buffer_out);
412 /* On success, 1 is returned for unicode version */
413 res = 1;
414 }
415 needed--;
416 }
417
418 *plen = needed;
419
420 TRACE("=> %d\n", res);
421 return res;
422}
423
424/******************************************************************
425 * ParseURLFromOutsideSourceA (SHDOCVW.169)
426 *
427 * See ParseURLFromOutsideSourceW
428 */
430{
432 LPWSTR urlW = NULL;
433 DWORD needed;
434 DWORD res;
435 DWORD len;
436
437 TRACE("(%s, %p, %p, %p) len: %d, unknown: 0x%x\n", debugstr_a(url), out, plen, unknown,
438 plen ? *plen : 0, unknown ? *unknown : 0);
439
440 if (url) {
441 len = MultiByteToWideChar(CP_ACP, 0, url, -1, NULL, 0);
442 urlW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
443 MultiByteToWideChar(CP_ACP, 0, url, -1, urlW, len);
444 }
445
448 HeapFree(GetProcessHeap(), 0, urlW);
449
450 needed = WideCharToMultiByte(CP_ACP, 0, buffer, -1, NULL, 0, NULL, NULL);
451
452 res = 0;
453 if (*plen >= needed) {
454 if (out != NULL) {
455 WideCharToMultiByte(CP_ACP, 0, buffer, -1, out, *plen, NULL, NULL);
456 /* On success, string size including terminating 0 is returned for ansi version */
457 res = needed;
458 }
459 needed--;
460 }
461
462 *plen = needed;
463
464 TRACE("=> %d\n", res);
465 return res;
466}
467
468/******************************************************************
469 * IEParseDisplayNameWithBCW (SHDOCVW.218)
470 */
472{
473 /* Guessing at parameter 3 based on IShellFolder's ParseDisplayName */
474 FIXME("stub: 0x%x %s %p %p\n",codepage,debugstr_w(lpszDisplayName),pbc,ppidl);
475 return E_FAIL;
476}
477
478/******************************************************************
479 * SHRestricted2W (SHDOCVW.159)
480 */
482{
483 FIXME("(%d %s %d) stub\n", res, debugstr_w(url), reserved);
484 return 0;
485}
486
487/******************************************************************
488 * SHRestricted2A (SHDOCVW.158)
489 *
490 * See SHRestricted2W
491 */
493{
494 LPWSTR urlW = NULL;
495 DWORD res;
496
497 TRACE("(%d, %s, %d)\n", restriction, debugstr_a(url), reserved);
498 if (url) {
500 urlW = heap_alloc(len * sizeof(WCHAR));
501 MultiByteToWideChar(CP_ACP, 0, url, -1, urlW, len);
502 }
503 res = SHRestricted2W(restriction, urlW, reserved);
504 heap_free(urlW);
505 return res;
506}
507
508/******************************************************************
509 * ImportPrivacySettings (SHDOCVW.@)
510 *
511 * Import global and/or per site privacy preferences from an xml file
512 *
513 * PARAMS
514 * filename [I] XML file to use
515 * pGlobalPrefs [IO] PTR to a usage flag for the global privacy preferences
516 * pPerSitePrefs [IO] PTR to a usage flag for the per site privacy preferences
517 *
518 * RETURNS
519 * Success: TRUE (the privacy preferences where updated)
520 * Failure: FALSE (the privacy preferences are unchanged)
521 *
522 * NOTES
523 * Set the flag to TRUE, when the related privacy preferences in the xml file
524 * should be used (parsed and overwrite the current settings).
525 * On return, the flag is TRUE, when the related privacy settings where used
526 *
527 */
528BOOL WINAPI ImportPrivacySettings(LPCWSTR filename, BOOL *pGlobalPrefs, BOOL * pPerSitePrefs)
529{
530 FIXME("(%s, %p->%d, %p->%d): stub\n", debugstr_w(filename),
531 pGlobalPrefs, pGlobalPrefs ? *pGlobalPrefs : 0,
532 pPerSitePrefs, pPerSitePrefs ? *pPerSitePrefs : 0);
533
534 if (pGlobalPrefs) *pGlobalPrefs = FALSE;
535 if (pPerSitePrefs) *pPerSitePrefs = FALSE;
536
537 return TRUE;
538}
539
540/******************************************************************
541 * ResetProfileSharing (SHDOCVW.164)
542 */
544{
545 FIXME("(%p) stub\n", hwnd);
546 return E_NOTIMPL;
547}
548
549/******************************************************************
550 * InstallReg_RunDLL (SHDOCVW.@)
551 */
553{
554 FIXME("(%p %p %s %x)\n", hwnd, handle, debugstr_a(cmdline), show);
555}
556
557/******************************************************************
558 * DoFileDownload (SHDOCVW.@)
559 */
561{
562 FIXME("(%s) stub\n", debugstr_w(filename));
563 return FALSE;
564}
565
566/******************************************************************
567 * DoOrganizeFavDlgW (SHDOCVW.@)
568 */
570{
571 FIXME("(%p %s) stub\n", hwnd, debugstr_w(initDir));
572 return FALSE;
573}
574
575/******************************************************************
576 * DoOrganizeFavDlg (SHDOCVW.@)
577 */
579{
580 LPWSTR initDirW = NULL;
581 BOOL res;
582
583 TRACE("(%p %s)\n", hwnd, debugstr_a(initDir));
584
585 if (initDir) {
586 DWORD len = MultiByteToWideChar(CP_ACP, 0, initDir, -1, NULL, 0);
587 initDirW = heap_alloc(len * sizeof(WCHAR));
588 MultiByteToWideChar(CP_ACP, 0, initDir, -1, initDirW, len);
589 }
590 res = DoOrganizeFavDlgW(hwnd, initDirW);
591 heap_free(initDirW);
592 return res;
593}
static void * heap_alloc(size_t len)
Definition: appwiz.h:65
static BOOL heap_free(void *mem)
Definition: appwiz.h:75
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
Definition: precomp.h:23
#define ARRAY_SIZE(a)
Definition: main.h:24
DWORD LPVOID fImpLoad
Definition: misc.cpp:155
#define FIXME(fmt,...)
Definition: debug.h:111
#define E_NOTIMPL
Definition: ddrawi.h:99
#define E_FAIL
Definition: ddrawi.h:102
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
static WCHAR unknown[MAX_STRING_RESOURCE_LEN]
Definition: object.c:1605
#define GetProcessHeap()
Definition: compat.h:736
#define ERROR_CALL_NOT_IMPLEMENTED
Definition: compat.h:102
#define DLL_PROCESS_ATTACH
Definition: compat.h:131
#define DLL_PROCESS_DETACH
Definition: compat.h:130
#define CP_ACP
Definition: compat.h:109
#define lstrcpynA
Definition: compat.h:751
#define GetProcAddress(x, y)
Definition: compat.h:753
#define HeapAlloc
Definition: compat.h:733
#define FreeLibrary(x)
Definition: compat.h:748
#define HeapFree(x, y, z)
Definition: compat.h:735
#define lstrcpyW
Definition: compat.h:749
#define WideCharToMultiByte
Definition: compat.h:111
#define MultiByteToWideChar
Definition: compat.h:110
#define LoadLibraryW(x)
Definition: compat.h:747
#define lstrlenW
Definition: compat.h:750
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
Definition: loader.c:838
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryA(LPCSTR lpLibFileName)
Definition: loader.c:111
BOOL WINAPI DisableThreadLibraryCalls(IN HMODULE hLibModule)
Definition: loader.c:85
VOID WINAPI ExitProcess(IN UINT uExitCode)
Definition: proc.c:1487
LONG WINAPI SHRegGetUSValueA(LPCSTR pSubKey, LPCSTR pValue, LPDWORD pwType, LPVOID pvData, LPDWORD pcbData, BOOL flagIgnoreHKCU, LPVOID pDefaultData, DWORD wDefaultDataSize)
Definition: reg.c:561
HRESULT WINAPI UrlCanonicalizeW(LPCWSTR pszUrl, LPWSTR pszCanonicalized, LPDWORD pcchCanonicalized, DWORD dwFlags)
Definition: url.c:282
HRESULT WINAPI UrlApplySchemeW(LPCWSTR pszIn, LPWSTR pszOut, LPDWORD pcchOut, DWORD dwFlags)
Definition: url.c:1817
BOOL WINAPI PathIsURLW(LPCWSTR lpstrPath)
Definition: url.c:2432
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31
#define INTERNET_MAX_URL_LENGTH
Definition: session.c:1418
r reserved
Definition: btrfs.c:3006
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
GLuint start
Definition: gl.h:1545
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLuint res
Definition: glext.h:9613
GLuint buffer
Definition: glext.h:5915
GLfloat GLfloat p
Definition: glext.h:8902
GLenum GLsizei len
Definition: glext.h:6722
GLfloat GLfloat GLfloat GLfloat h
Definition: glext.h:7723
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define S_OK
Definition: intsafe.h:52
const char * filename
Definition: ioapi.h:137
#define debugstr_guid
Definition: kernel32.h:35
#define debugstr_a
Definition: kernel32.h:31
#define debugstr_w
Definition: kernel32.h:32
static PVOID ptr
Definition: dispmode.c:27
static HINSTANCE hinst
Definition: edit.c:551
static const WCHAR url[]
Definition: encode.c:1432
unsigned __int3264 UINT_PTR
Definition: mstsclib_h.h:274
#define BOOL
Definition: nt_native.h:43
#define DWORD
Definition: nt_native.h:44
interface IBindCtx * LPBC
Definition: objfwd.h:18
long LONG
Definition: pedump.c:60
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
#define REFIID
Definition: guiddef.h:118
#define REFCLSID
Definition: guiddef.h:117
static FILE * out
Definition: regtests2xml.c:44
HRESULT SHDOCVW_GetShellInstanceObjectClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppvClassObj) DECLSPEC_HIDDEN
Definition: shlinstobj.c:357
DWORD WINAPI IEWinMain(LPSTR szCommandLine, int nShowWindow)
Definition: shdocvw_main.c:117
BOOL WINAPI DoFileDownload(LPWSTR filename)
Definition: shdocvw_main.c:560
HRESULT WINAPI IEParseDisplayNameWithBCW(DWORD codepage, LPCWSTR lpszDisplayName, LPBC pbc, LPITEMIDLIST *ppidl)
Definition: shdocvw_main.c:471
DWORD WINAPI ParseURLFromOutsideSourceA(LPCSTR url, LPSTR out, LPDWORD plen, LPDWORD unknown)
Definition: shdocvw_main.c:429
HRESULT WINAPI DllRegisterServer(void)
Definition: shdocvw_main.c:97
DWORD WINAPI SHRestricted2A(DWORD restriction, LPCSTR url, DWORD reserved)
Definition: shdocvw_main.c:492
LONG SHDOCVW_refCount
Definition: shdocvw_main.c:42
BOOL WINAPI ShellDDEInit(BOOL start)
Definition: shdocvw_main.c:227
static HRESULT get_ieframe_object(REFCLSID rclsid, REFIID riid, void **ppv)
Definition: shdocvw_main.c:57
HRESULT WINAPI ResetProfileSharing(HWND hwnd)
Definition: shdocvw_main.c:543
HRESULT WINAPI DllGetVersion(DLLVERSIONINFO *info)
Definition: shdocvw_main.c:172
DWORD WINAPI WhichPlatformFORWARD(void)
Definition: shdocvw_main.c:292
DWORD WINAPI RunInstallUninstallStubs(void)
Definition: shdocvw_main.c:250
DWORD WINAPI StopWatchAFORWARD(DWORD dwClass, LPCSTR lpszStr, DWORD dwUnknown, DWORD dwMode, DWORD dwTimeStamp)
Definition: shdocvw_main.c:323
DWORD WINAPI RunInstallUninstallStubs2(int arg)
Definition: shdocvw_main.c:261
BOOL WINAPI DoOrganizeFavDlgW(HWND hwnd, LPCWSTR initDir)
Definition: shdocvw_main.c:569
HRESULT WINAPI DllUnregisterServer(void)
Definition: shdocvw_main.c:106
BOOL WINAPI DllMain(HINSTANCE hinst, DWORD fdwReason, LPVOID fImpLoad)
Definition: shdocvw_main.c:144
HRESULT WINAPI DllInstall(BOOL bInstall, LPCWSTR cmdline)
Definition: shdocvw_main.c:188
DWORD WINAPI StopWatchWFORWARD(DWORD dwClass, LPCWSTR lpszStr, DWORD dwUnknown, DWORD dwMode, DWORD dwTimeStamp)
Definition: shdocvw_main.c:336
static HINSTANCE ieframe_instance
Definition: shdocvw_main.c:45
void WINAPI StopWatchModeFORWARD(void)
Definition: shdocvw_main.c:303
BOOL WINAPI DoOrganizeFavDlg(HWND hwnd, LPCSTR initDir)
Definition: shdocvw_main.c:578
void WINAPI StopWatchFlushFORWARD(void)
Definition: shdocvw_main.c:313
void WINAPI InstallReg_RunDLL(HWND hwnd, HINSTANCE handle, LPCSTR cmdline, INT show)
Definition: shdocvw_main.c:552
DWORD WINAPI WinList_Init(void)
Definition: shdocvw_main.c:213
static BOOL SHDOCVW_LoadShell32(void)
Definition: shdocvw_main.c:200
DWORD WINAPI SetQueryNetSessionCount(DWORD arg)
Definition: shdocvw_main.c:270
HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, void **ppv)
Definition: shdocvw_main.c:79
HRESULT WINAPI URLSubRegQueryA(LPCSTR regpath, LPCSTR name, DWORD type, LPSTR out, DWORD outlen, DWORD unknown)
Definition: shdocvw_main.c:349
HRESULT WINAPI DllCanUnloadNow(void)
Definition: shdocvw_main.c:164
BOOL WINAPI ImportPrivacySettings(LPCWSTR filename, BOOL *pGlobalPrefs, BOOL *pPerSitePrefs)
Definition: shdocvw_main.c:528
static HINSTANCE get_ieframe_instance(void)
Definition: shdocvw_main.c:47
DWORD WINAPI ParseURLFromOutsideSourceW(LPCWSTR url, LPWSTR out, LPDWORD plen, LPDWORD unknown)
Definition: shdocvw_main.c:374
static void * fetch_shlwapi_ordinal(UINT_PTR ord)
Definition: shdocvw_main.c:280
static HMODULE SHDOCVW_hshell32
Definition: shdocvw_main.c:44
DWORD WINAPI SHRestricted2W(DWORD res, LPCWSTR url, DWORD reserved)
Definition: shdocvw_main.c:481
HRESULT hr
Definition: shlfolder.c:183
#define URL_APPLY_GUESSSCHEME
Definition: shlwapi.h:1203
#define URL_APPLY_DEFAULT
Definition: shlwapi.h:1204
#define URL_ESCAPE_SPACES_ONLY
Definition: shlwapi.h:1216
#define DLLVER_PLATFORM_WINDOWS
Definition: shlwapi.h:1961
ITEMIDLIST UNALIGNED * LPITEMIDLIST
Definition: shtypes.idl:41
#define TRACE(s)
Definition: solgame.cpp:4
TCHAR * cmdline
Definition: stretchblt.cpp:32
Definition: name.c:39
uint32_t * LPDWORD
Definition: typedefs.h:59
int32_t INT
Definition: typedefs.h:58
int ret
int codepage
Definition: win_iconv.c:156
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
#define HRESULT
Definition: msvc.h:7
#define WINAPI
Definition: msvc.h:6
#define S_FALSE
Definition: winerror.h:2357
#define NOERROR
Definition: winerror.h:2354
#define CLASS_E_CLASSNOTAVAILABLE
Definition: winerror.h:2663
#define MAKEINTRESOURCEA(i)
Definition: winuser.h:581
const char * LPCSTR
Definition: xmlstorage.h:183
char * LPSTR
Definition: xmlstorage.h:182
__wchar_t WCHAR
Definition: xmlstorage.h:180
WCHAR * LPWSTR
Definition: xmlstorage.h:184
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
char CHAR
Definition: xmlstorage.h:175