ReactOS  0.4.14-dev-98-gb0d4763
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 "config.h"
24 
25 #include <stdarg.h>
26 #include <stdio.h>
27 
28 #include "wine/unicode.h"
29 #include "wine/debug.h"
30 
31 #include "shdocvw.h"
32 
33 #include "winreg.h"
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 
51  if(!ieframe_instance)
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) {
65  if(!ieframe_instance)
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  */
117 DWORD 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  {
149  case DLL_PROCESS_ATTACH:
151  break;
152  case DLL_PROCESS_DETACH:
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 {
202  if (SHDOCVW_hshell32)
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  */
225 static 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  */
323 DWORD 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  */
336 DWORD 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 {
376  WCHAR buffer_in[INTERNET_MAX_URL_LENGTH];
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 
446  len = ARRAY_SIZE(buffer);
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) {
499  DWORD len = MultiByteToWideChar(CP_ACP, 0, url, -1, NULL, 0);
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  */
528 BOOL 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 }
DWORD WINAPI StopWatchWFORWARD(DWORD dwClass, LPCWSTR lpszStr, DWORD dwUnknown, DWORD dwMode, DWORD dwTimeStamp)
Definition: shdocvw_main.c:336
BOOL WINAPI DoOrganizeFavDlgW(HWND hwnd, LPCWSTR initDir)
Definition: shdocvw_main.c:569
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
#define HRESULT
Definition: msvc.h:9
DWORD WINAPI RunInstallUninstallStubs(void)
Definition: shdocvw_main.c:250
HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, void **ppv)
Definition: shdocvw_main.c:79
HRESULT WINAPI DllInstall(BOOL bInstall, LPCWSTR cmdline)
Definition: shdocvw_main.c:188
#define REFIID
Definition: guiddef.h:118
#define TRUE
Definition: types.h:120
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:49
#define WideCharToMultiByte
Definition: compat.h:101
HRESULT hr
Definition: shlfolder.c:183
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
interface IBindCtx * LPBC
Definition: objfwd.h:18
#define NOERROR
Definition: winerror.h:2354
LONG WINAPI SHRegGetUSValueA(LPCSTR pSubKey, LPCSTR pValue, LPDWORD pwType, LPVOID pvData, LPDWORD pcbData, BOOL flagIgnoreHKCU, LPVOID pDefaultData, DWORD wDefaultDataSize)
Definition: reg.c:561
DWORD WINAPI WhichPlatformFORWARD(void)
Definition: shdocvw_main.c:292
REFIID riid
Definition: precomp.h:44
#define REFCLSID
Definition: guiddef.h:117
#define CP_ACP
Definition: compat.h:99
char CHAR
Definition: xmlstorage.h:175
DWORD WINAPI SHRestricted2W(DWORD res, LPCWSTR url, DWORD reserved)
Definition: shdocvw_main.c:481
REFIID LPVOID * ppv
Definition: atlbase.h:39
BOOL WINAPI DisableThreadLibraryCalls(IN HMODULE hLibModule)
Definition: loader.c:85
static HINSTANCE ieframe_instance
Definition: shdocvw_main.c:45
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
VOID WINAPI ExitProcess(IN UINT uExitCode)
Definition: proc.c:1487
GLuint buffer
Definition: glext.h:5915
#define MAKEINTRESOURCEA(i)
Definition: winuser.h:581
#define DLL_PROCESS_ATTACH
Definition: compat.h:120
TCHAR * cmdline
Definition: stretchblt.cpp:32
BOOL WINAPI DoFileDownload(LPWSTR filename)
Definition: shdocvw_main.c:560
char * LPSTR
Definition: xmlstorage.h:182
const char * filename
Definition: ioapi.h:135
#define lstrlenW
Definition: compat.h:407
#define E_FAIL
Definition: ddrawi.h:102
#define CLASS_E_CLASSNOTAVAILABLE
Definition: winerror.h:2663
#define DWORD
Definition: nt_native.h:44
int32_t INT
Definition: typedefs.h:56
DWORD WINAPI SHRestricted2A(DWORD restriction, LPCSTR url, DWORD reserved)
Definition: shdocvw_main.c:492
static void * heap_alloc(size_t len)
Definition: appwiz.h:65
GLfloat GLfloat GLfloat GLfloat h
Definition: glext.h:7723
BOOL WINAPI PathIsURLW(LPCWSTR lpstrPath)
Definition: url.c:2432
static void * fetch_shlwapi_ordinal(UINT_PTR ord)
Definition: shdocvw_main.c:280
HRESULT WINAPI ResetProfileSharing(HWND hwnd)
Definition: shdocvw_main.c:543
unsigned int BOOL
Definition: ntddk_ex.h:94
long LONG
Definition: pedump.c:60
HRESULT WINAPI DllUnregisterServer(void)
Definition: shdocvw_main.c:106
HRESULT WINAPI DllCanUnloadNow(void)
Definition: shdocvw_main.c:164
#define debugstr_w
Definition: kernel32.h:32
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryA(LPCSTR lpLibFileName)
Definition: loader.c:111
#define FIXME(fmt,...)
Definition: debug.h:110
static PVOID ptr
Definition: dispmode.c:27
r reserved
Definition: btrfs.c:2893
int codepage
Definition: win_iconv.c:156
#define S_FALSE
Definition: winerror.h:2357
DWORD WINAPI RunInstallUninstallStubs2(int arg)
Definition: shdocvw_main.c:261
#define LoadLibraryW(x)
Definition: compat.h:404
smooth NULL
Definition: ftsmooth.c:416
#define INTERNET_MAX_URL_LENGTH
Definition: session.c:1380
const char * LPCSTR
Definition: xmlstorage.h:183
#define debugstr_guid
Definition: kernel32.h:35
#define DLL_PROCESS_DETACH
Definition: compat.h:119
HRESULT WINAPI DllRegisterServer(void)
Definition: shdocvw_main.c:97
#define TRACE(s)
Definition: solgame.cpp:4
#define FreeLibrary(x)
Definition: compat.h:405
#define GetProcessHeap()
Definition: compat.h:395
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define debugstr_a
Definition: kernel32.h:31
#define URL_APPLY_DEFAULT
Definition: shlwapi.h:1204
LONG HRESULT
Definition: typedefs.h:77
static const WCHAR url[]
Definition: encode.c:1432
BOOL WINAPI DoOrganizeFavDlg(HWND hwnd, LPCSTR initDir)
Definition: shdocvw_main.c:578
DWORD WINAPI IEWinMain(LPSTR szCommandLine, int nShowWindow)
Definition: shdocvw_main.c:117
#define WINAPI
Definition: msvc.h:8
HRESULT WINAPI UrlCanonicalizeW(LPCWSTR pszUrl, LPWSTR pszCanonicalized, LPDWORD pcchCanonicalized, DWORD dwFlags)
Definition: url.c:282
static FILE * out
Definition: regtests2xml.c:44
unsigned long DWORD
Definition: ntddk_ex.h:95
unsigned __int3264 UINT_PTR
Definition: mstsclib_h.h:274
Definition: id3.c:18
static HINSTANCE get_ieframe_instance(void)
Definition: shdocvw_main.c:47
DWORD WINAPI SetQueryNetSessionCount(DWORD arg)
Definition: shdocvw_main.c:270
LONG SHDOCVW_refCount
Definition: shdocvw_main.c:42
HRESULT WINAPI URLSubRegQueryA(LPCSTR regpath, LPCSTR name, DWORD type, LPSTR out, DWORD outlen, DWORD unknown)
Definition: shdocvw_main.c:349
int ret
HRESULT WINAPI IEParseDisplayNameWithBCW(DWORD codepage, LPCWSTR lpszDisplayName, LPBC pbc, LPITEMIDLIST *ppidl)
Definition: shdocvw_main.c:471
static HMODULE SHDOCVW_hshell32
Definition: shdocvw_main.c:44
HRESULT WINAPI UrlApplySchemeW(LPCWSTR pszIn, LPWSTR pszOut, LPDWORD pcchOut, DWORD dwFlags)
Definition: url.c:1817
static HRESULT get_ieframe_object(REFCLSID rclsid, REFIID riid, void **ppv)
Definition: shdocvw_main.c:57
GLenum GLsizei len
Definition: glext.h:6722
#define S_OK
Definition: intsafe.h:59
DWORD WINAPI WinList_Init(void)
Definition: shdocvw_main.c:213
DWORD LPVOID fImpLoad
Definition: misc.cpp:155
#define lstrcpyW
Definition: compat.h:406
GLuint start
Definition: gl.h:1545
#define ARRAY_SIZE(a)
Definition: main.h:24
#define E_NOTIMPL
Definition: ddrawi.h:99
static BOOL SHDOCVW_LoadShell32(void)
Definition: shdocvw_main.c:200
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: compobj.c:4021
#define lstrcpynA
Definition: compat.h:408
HRESULT WINAPI DllGetVersion(DLLVERSIONINFO *info)
Definition: shdocvw_main.c:172
BOOL WINAPI ShellDDEInit(BOOL start)
Definition: shdocvw_main.c:227
#define MultiByteToWideChar
Definition: compat.h:100
DWORD WINAPI ParseURLFromOutsideSourceA(LPCSTR url, LPSTR out, LPDWORD plen, LPDWORD unknown)
Definition: shdocvw_main.c:429
#define URL_APPLY_GUESSSCHEME
Definition: shlwapi.h:1203
Definition: name.c:36
GLuint res
Definition: glext.h:9613
uint32_t * LPDWORD
Definition: typedefs.h:57
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
Definition: loader.c:847
static HINSTANCE hinst
Definition: edit.c:551
#define ERROR_CALL_NOT_IMPLEMENTED
Definition: compat.h:92
BOOL WINAPI DllMain(HINSTANCE hinst, DWORD fdwReason, LPVOID fImpLoad)
Definition: shdocvw_main.c:144
#define GetProcAddress(x, y)
Definition: compat.h:410
#define URL_ESCAPE_SPACES_ONLY
Definition: shlwapi.h:1216
void WINAPI InstallReg_RunDLL(HWND hwnd, HINSTANCE handle, LPCSTR cmdline, INT show)
Definition: shdocvw_main.c:552
GLfloat GLfloat p
Definition: glext.h:8902
WCHAR * LPWSTR
Definition: xmlstorage.h:184
DWORD WINAPI ParseURLFromOutsideSourceW(LPCWSTR url, LPWSTR out, LPDWORD plen, LPDWORD unknown)
Definition: shdocvw_main.c:374
void WINAPI StopWatchModeFORWARD(void)
Definition: shdocvw_main.c:303
ITEMIDLIST UNALIGNED * LPITEMIDLIST
Definition: shtypes.idl:41
HRESULT SHDOCVW_GetShellInstanceObjectClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppvClassObj) DECLSPEC_HIDDEN
Definition: shlinstobj.c:358
void WINAPI StopWatchFlushFORWARD(void)
Definition: shdocvw_main.c:313
#define HeapFree(x, y, z)
Definition: compat.h:394
static BOOL(WINAPI *pShellDDEInit)(BOOL start)
WINE_DEFAULT_DEBUG_CHANNEL(shdocvw)
DWORD WINAPI StopWatchAFORWARD(DWORD dwClass, LPCSTR lpszStr, DWORD dwUnknown, DWORD dwMode, DWORD dwTimeStamp)
Definition: shdocvw_main.c:323
BOOL WINAPI ImportPrivacySettings(LPCWSTR filename, BOOL *pGlobalPrefs, BOOL *pPerSitePrefs)
Definition: shdocvw_main.c:528
static BOOL heap_free(void *mem)
Definition: appwiz.h:75
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31
#define DLLVER_PLATFORM_WINDOWS
Definition: shlwapi.h:1961