ReactOS 0.4.17-dev-573-g8315b8c
urlmon_main.c File Reference
#include <stdarg.h>
#include "urlmon_main.h"
#include "winreg.h"
#include "shlwapi.h"
#include "advpub.h"
#include "initguid.h"
#include "wine/debug.h"
#include "urlmon.h"
Include dependency graph for urlmon_main.c:

Go to the source code of this file.

Classes

class  ClassFactory
 
struct  object_creation_info
 

Macros

#define NO_SHLWAPI_REG
 
#define X(x)   case x: return #x
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (urlmon)
 
 DEFINE_GUID (CLSID_CUri, 0xDF2FCE13, 0x25EC, 0x45BB, 0x9D, 0x4C, 0xCE, 0xCD, 0x47, 0xC2, 0x43, 0x0C)
 
static void init_session (void)
 
tls_data_tget_tls_data (void)
 
static void free_tls_list (void)
 
static void detach_thread (void)
 
static void process_detach (void)
 
BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad)
 
const chardebugstr_bindstatus (ULONG status)
 
HRESULT WINAPI DllInstall (BOOL bInstall, LPCWSTR cmdline)
 
HRESULT WINAPI DllCanUnloadNow (void)
 
static ClassFactoryimpl_from_IClassFactory (IClassFactory *iface)
 
static HRESULT WINAPI CF_QueryInterface (IClassFactory *iface, REFIID riid, LPVOID *ppv)
 
static ULONG WINAPI CF_AddRef (IClassFactory *iface)
 
static ULONG WINAPI CF_Release (IClassFactory *iface)
 
static HRESULT WINAPI CF_CreateInstance (IClassFactory *iface, IUnknown *outer, REFIID riid, void **ppv)
 
static HRESULT WINAPI CF_LockServer (LPCLASSFACTORY iface, BOOL dolock)
 
HRESULT WINAPI DllGetClassObject (REFCLSID rclsid, REFIID riid, LPVOID *ppv)
 
static HRESULT register_inf (BOOL doregister)
 
HRESULT WINAPI DllRegisterServer (void)
 
HRESULT WINAPI DllUnregisterServer (void)
 
HRESULT WINAPI DllRegisterServerEx (void)
 
HRESULT WINAPI IsValidURL (LPBC pBC, LPCWSTR szURL, DWORD dwReserved)
 
HRESULT WINAPI FaultInIEFeature (HWND hwnd, uCLSSPEC *pClassSpec, QUERYCONTEXT *pQuery, DWORD flags)
 
HRESULT WINAPI CoGetClassObjectFromURL (REFCLSID rclsid, LPCWSTR szCodeURL, DWORD dwFileVersionMS, DWORD dwFileVersionLS, LPCWSTR szContentType, LPBINDCTX pBindCtx, DWORD dwClsContext, LPVOID pvReserved, REFIID riid, LPVOID *ppv)
 
void WINAPI ReleaseBindInfo (BINDINFO *pbindinfo)
 
HRESULT WINAPI CopyStgMedium (const STGMEDIUM *src, STGMEDIUM *dst)
 
HRESULT WINAPI CopyBindInfo (const BINDINFO *pcbiSrc, BINDINFO *pcbiDest)
 
HRESULT WINAPI GetClassFileOrMime (LPBC pBC, LPCWSTR pszFilename, LPVOID pBuffer, DWORD cbBuffer, LPCWSTR pszMimeType, DWORD dwReserved, CLSID *pclsid)
 
HRESULT WINAPI Extract (void *dest, LPCSTR szCabName)
 
BOOL WINAPI IsLoggingEnabledA (LPCSTR url)
 
BOOL WINAPI IsLoggingEnabledW (LPCWSTR url)
 
BOOL WINAPI IsProtectedModeURL (const WCHAR *url)
 
int WINAPI LogSqmBits (DWORD unk1, DWORD unk2)
 
int WINAPI LogSqmIncrement (DWORD unk1, DWORD unk2)
 
void WINAPI LogSqmUXCommandOffsetInternal (DWORD unk1, DWORD unk2, DWORD unk3, DWORD unk4)
 
int WINAPI MapUriToBrowserEmulationState (DWORD unk1, DWORD unk2, DWORD unk3)
 
HRESULT WINAPI CoInternetGetBrowserProfile (DWORD unk)
 
void WINAPI FlushUrlmonZonesCache (void)
 
HRESULT WINAPI RegisterMediaTypes (UINT types, LPCSTR *szTypes, CLIPFORMAT *cfTypes)
 
BOOL WINAPI ShouldShowIntranetWarningSecband (DWORD unk)
 
HRESULT WINAPI GetIUriPriv (IUri *uri, void **p)
 

Variables

LONG URLMON_refCount = 0
 
HINSTANCE urlmon_instance
 
static HMODULE hCabinet = NULL
 
static DWORD urlmon_tls = TLS_OUT_OF_INDEXES
 
static struct list tls_list = LIST_INIT(tls_list)
 
static CRITICAL_SECTION tls_cs = { &tls_cs_dbg, -1, 0, 0, 0, 0 }
 
static CRITICAL_SECTION_DEBUG tls_cs_dbg
 
static const IClassFactoryVtbl ClassFactoryVtbl
 
static ClassFactory FileProtocolCF
 
static ClassFactory FtpProtocolCF
 
static ClassFactory GopherProtocolCF
 
static ClassFactory HttpProtocolCF
 
static ClassFactory HttpSProtocolCF
 
static ClassFactory MkProtocolCF
 
static ClassFactory SecurityManagerCF
 
static ClassFactory ZoneManagerCF
 
static ClassFactory StdURLMonikerCF
 
static ClassFactory MimeFilterCF
 
static ClassFactory CUriCF
 
static const struct object_creation_info object_creation []
 

Macro Definition Documentation

◆ NO_SHLWAPI_REG

#define NO_SHLWAPI_REG

Definition at line 27 of file urlmon_main.c.

◆ X

#define X (   x)    case x: return #x

Function Documentation

◆ CF_AddRef()

static ULONG WINAPI CF_AddRef ( IClassFactory iface)
static

Definition at line 291 of file urlmon_main.c.

292{
294 return 2;
295}
static void URLMON_LockModule(void)
Definition: urlmon_main.h:64

◆ CF_CreateInstance()

static HRESULT WINAPI CF_CreateInstance ( IClassFactory iface,
IUnknown outer,
REFIID  riid,
void **  ppv 
)
static

Definition at line 304 of file urlmon_main.c.

306{
308 IUnknown *unk;
310
311 TRACE("(%p)->(%p %s %p)\n", This, outer, debugstr_guid(riid), ppv);
312
314 *ppv = NULL;
316 }
317
318 hres = This->pfnCreateInstance(outer, (void**)&unk);
319 if(FAILED(hres)) {
320 *ppv = NULL;
321 return hres;
322 }
323
325 hres = IUnknown_QueryInterface(unk, riid, ppv);
326 IUnknown_Release(unk);
327 }else {
328 *ppv = unk;
329 }
330 return hres;
331}
const GUID IID_IUnknown
#define NULL
Definition: types.h:112
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define FAILED(hr)
Definition: intsafe.h:51
#define debugstr_guid
Definition: kernel32.h:35
HRESULT hres
Definition: protocol.c:465
static IUnknown * outer
Definition: compobj.c:82
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
#define TRACE(s)
Definition: solgame.cpp:4
static ClassFactory * impl_from_IClassFactory(IClassFactory *iface)
Definition: urlmon_main.c:265
#define CLASS_E_NOAGGREGATION
Definition: winerror.h:3771

Referenced by ClassFactory_CreateInstance(), and test_default_handler_run().

◆ CF_LockServer()

static HRESULT WINAPI CF_LockServer ( LPCLASSFACTORY  iface,
BOOL  dolock 
)
static

Definition at line 333 of file urlmon_main.c.

334{
335 TRACE("(%d)\n", dolock);
336
337 if (dolock)
339 else
341
342 return S_OK;
343}
#define S_OK
Definition: intsafe.h:52
static void URLMON_UnlockModule(void)
Definition: urlmon_main.h:65

◆ CF_QueryInterface()

static HRESULT WINAPI CF_QueryInterface ( IClassFactory iface,
REFIID  riid,
LPVOID ppv 
)
static

Definition at line 270 of file urlmon_main.c.

271{
272 *ppv = NULL;
273
275 TRACE("(%p)->(IID_IUnknown %p)\n", iface, ppv);
276 *ppv = iface;
277 }else if(IsEqualGUID(riid, &IID_IClassFactory)) {
278 TRACE("(%p)->(IID_IClassFactory %p)\n", iface, ppv);
279 *ppv = iface;
280 }
281
282 if(*ppv) {
283 IUnknown_AddRef((IUnknown*)*ppv);
284 return S_OK;
285 }
286
287 WARN("(%p)->(%s,%p),not found\n", iface, debugstr_guid(riid), ppv);
288 return E_NOINTERFACE;
289}
#define WARN(fmt,...)
Definition: precomp.h:61
const GUID IID_IClassFactory
#define E_NOINTERFACE
Definition: winerror.h:3479

◆ CF_Release()

static ULONG WINAPI CF_Release ( IClassFactory iface)
static

Definition at line 297 of file urlmon_main.c.

298{
300 return 1;
301}

◆ CoGetClassObjectFromURL()

HRESULT WINAPI CoGetClassObjectFromURL ( REFCLSID  rclsid,
LPCWSTR  szCodeURL,
DWORD  dwFileVersionMS,
DWORD  dwFileVersionLS,
LPCWSTR  szContentType,
LPBINDCTX  pBindCtx,
DWORD  dwClsContext,
LPVOID  pvReserved,
REFIID  riid,
LPVOID ppv 
)

Definition at line 539 of file urlmon_main.c.

543{
544 FIXME("(%s %s %ld %ld %s %p %ld %p %s %p) Stub!\n", debugstr_guid(rclsid), debugstr_w(szCodeURL),
545 dwFileVersionMS, dwFileVersionLS, debugstr_w(szContentType), pBindCtx, dwClsContext, pvReserved,
547 return E_NOINTERFACE;
548}
#define FIXME(fmt,...)
Definition: precomp.h:53
#define debugstr_w
Definition: kernel32.h:32
static LPCWSTR LPVOID pvReserved
Definition: asmcache.c:749

◆ CoInternetGetBrowserProfile()

HRESULT WINAPI CoInternetGetBrowserProfile ( DWORD  unk)

Definition at line 806 of file urlmon_main.c.

807{
808 FIXME("%lx: stub\n", unk);
809 return E_NOTIMPL;
810}
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ CopyBindInfo()

HRESULT WINAPI CopyBindInfo ( const BINDINFO *  pcbiSrc,
BINDINFO *  pcbiDest 
)

Definition at line 643 of file urlmon_main.c.

644{
645 DWORD size;
647
648 TRACE("(%p %p)\n", pcbiSrc, pcbiDest);
649
650 if(!pcbiSrc || !pcbiDest)
651 return E_POINTER;
652 if(!pcbiSrc->cbSize || !pcbiDest->cbSize)
653 return E_INVALIDARG;
654
655 size = pcbiDest->cbSize;
656 if(size > pcbiSrc->cbSize) {
657 memcpy(pcbiDest, pcbiSrc, pcbiSrc->cbSize);
658 memset((char*)pcbiDest+pcbiSrc->cbSize, 0, size-pcbiSrc->cbSize);
659 } else {
660 memcpy(pcbiDest, pcbiSrc, size);
661 }
662 pcbiDest->cbSize = size;
663
664 size = FIELD_OFFSET(BINDINFO, szExtraInfo)+sizeof(void*);
665 if(pcbiSrc->cbSize>=size && pcbiDest->cbSize>=size && pcbiSrc->szExtraInfo) {
666 size = (lstrlenW(pcbiSrc->szExtraInfo)+1)*sizeof(WCHAR);
667 pcbiDest->szExtraInfo = CoTaskMemAlloc(size);
668 if(!pcbiDest->szExtraInfo)
669 return E_OUTOFMEMORY;
670 memcpy(pcbiDest->szExtraInfo, pcbiSrc->szExtraInfo, size);
671 }
672
673 size = FIELD_OFFSET(BINDINFO, stgmedData)+sizeof(STGMEDIUM);
674 if(pcbiSrc->cbSize>=size && pcbiDest->cbSize>=size) {
675 hres = CopyStgMedium(&pcbiSrc->stgmedData, &pcbiDest->stgmedData);
676 if(FAILED(hres)) {
677 CoTaskMemFree(pcbiDest->szExtraInfo);
678 return hres;
679 }
680 }
681
682 size = FIELD_OFFSET(BINDINFO, szCustomVerb)+sizeof(void*);
683 if(pcbiSrc->cbSize>=size && pcbiDest->cbSize>=size && pcbiSrc->szCustomVerb) {
684 size = (lstrlenW(pcbiSrc->szCustomVerb)+1)*sizeof(WCHAR);
685 pcbiDest->szCustomVerb = CoTaskMemAlloc(size);
686 if(!pcbiDest->szCustomVerb) {
687 CoTaskMemFree(pcbiDest->szExtraInfo);
688 ReleaseStgMedium(&pcbiDest->stgmedData);
689 return E_OUTOFMEMORY;
690 }
691 memcpy(pcbiDest->szCustomVerb, pcbiSrc->szCustomVerb, size);
692 }
693
694 size = FIELD_OFFSET(BINDINFO, securityAttributes)+sizeof(SECURITY_ATTRIBUTES);
695 if(pcbiDest->cbSize >= size)
696 memset(&pcbiDest->securityAttributes, 0, sizeof(SECURITY_ATTRIBUTES));
697
698 if(pcbiSrc->pUnk)
699 IUnknown_AddRef(pcbiDest->pUnk);
700
701 return S_OK;
702}
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define E_INVALIDARG
Definition: ddrawi.h:101
void *WINAPI CoTaskMemAlloc(SIZE_T size)
Definition: malloc.c:381
void WINAPI CoTaskMemFree(void *ptr)
Definition: malloc.c:389
struct _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES
#define lstrlenW
Definition: compat.h:750
void WINAPI ReleaseStgMedium(STGMEDIUM *pmedium)
Definition: ole2.c:2014
unsigned long DWORD
Definition: ntddk_ex.h:95
GLsizeiptr size
Definition: glext.h:5919
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
short WCHAR
Definition: pedump.c:58
#define memset(x, y, z)
Definition: compat.h:39
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:255
HRESULT WINAPI CopyStgMedium(const STGMEDIUM *src, STGMEDIUM *dst)
Definition: urlmon_main.c:586
#define E_POINTER
Definition: winerror.h:3480

Referenced by InternetBindInfo_GetBindInfo().

◆ CopyStgMedium()

HRESULT WINAPI CopyStgMedium ( const STGMEDIUM *  src,
STGMEDIUM *  dst 
)

Definition at line 586 of file urlmon_main.c.

587{
588 TRACE("(%p %p)\n", src, dst);
589
590 if(!src || !dst)
591 return E_POINTER;
592
593 *dst = *src;
594
595 switch(dst->tymed) {
596 case TYMED_NULL:
597 break;
598 case TYMED_FILE:
599 if(src->lpszFileName && !src->pUnkForRelease) {
600 DWORD size = (lstrlenW(src->lpszFileName)+1)*sizeof(WCHAR);
601 dst->lpszFileName = CoTaskMemAlloc(size);
602 if(!dst->lpszFileName)
603 return E_OUTOFMEMORY;
604 memcpy(dst->lpszFileName, src->lpszFileName, size);
605 }
606 break;
607 case TYMED_ISTREAM:
608 if(dst->pstm)
609 IStream_AddRef(dst->pstm);
610 break;
611 case TYMED_ISTORAGE:
612 if(dst->pstg)
613 IStorage_AddRef(dst->pstg);
614 break;
615 case TYMED_HGLOBAL:
616 if(dst->hGlobal) {
617 SIZE_T size = GlobalSize(src->hGlobal);
618 char *src_ptr, *dst_ptr;
619
620 dst->hGlobal = GlobalAlloc(GMEM_FIXED, size);
621 if(!dst->hGlobal)
622 return E_OUTOFMEMORY;
623 dst_ptr = GlobalLock(dst->hGlobal);
624 src_ptr = GlobalLock(src->hGlobal);
625 memcpy(dst_ptr, src_ptr, size);
626 GlobalUnlock(src_ptr);
627 GlobalUnlock(dst_ptr);
628 }
629 break;
630 default:
631 FIXME("Unimplemented tymed %ld\n", src->tymed);
632 }
633
634 if(dst->pUnkForRelease)
635 IUnknown_AddRef(dst->pUnkForRelease);
636
637 return S_OK;
638}
GLenum src
Definition: glext.h:6340
GLenum GLenum dst
Definition: glext.h:6340
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
Definition: heapmem.c:1190
HGLOBAL NTAPI GlobalAlloc(UINT uFlags, SIZE_T dwBytes)
Definition: heapmem.c:368
SIZE_T NTAPI GlobalSize(HGLOBAL hMem)
Definition: heapmem.c:1090
static ERESOURCE GlobalLock
Definition: sys_arch.c:8
ULONG_PTR SIZE_T
Definition: typedefs.h:80
#define GMEM_FIXED
Definition: winbase.h:317

Referenced by CopyBindInfo().

◆ debugstr_bindstatus()

const char * debugstr_bindstatus ( ULONG  status)

Definition at line 173 of file urlmon_main.c.

174{
175 switch(status) {
176#define X(x) case x: return #x
177 X(BINDSTATUS_FINDINGRESOURCE);
178 X(BINDSTATUS_CONNECTING);
179 X(BINDSTATUS_REDIRECTING);
180 X(BINDSTATUS_BEGINDOWNLOADDATA);
181 X(BINDSTATUS_DOWNLOADINGDATA);
182 X(BINDSTATUS_ENDDOWNLOADDATA);
183 X(BINDSTATUS_BEGINDOWNLOADCOMPONENTS);
184 X(BINDSTATUS_INSTALLINGCOMPONENTS);
185 X(BINDSTATUS_ENDDOWNLOADCOMPONENTS);
186 X(BINDSTATUS_USINGCACHEDCOPY);
187 X(BINDSTATUS_SENDINGREQUEST);
188 X(BINDSTATUS_CLASSIDAVAILABLE);
189 X(BINDSTATUS_MIMETYPEAVAILABLE);
190 X(BINDSTATUS_CACHEFILENAMEAVAILABLE);
191 X(BINDSTATUS_BEGINSYNCOPERATION);
192 X(BINDSTATUS_ENDSYNCOPERATION);
193 X(BINDSTATUS_BEGINUPLOADDATA);
194 X(BINDSTATUS_UPLOADINGDATA);
195 X(BINDSTATUS_ENDUPLOADINGDATA);
196 X(BINDSTATUS_PROTOCOLCLASSID);
197 X(BINDSTATUS_ENCODING);
198 X(BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE);
199 X(BINDSTATUS_CLASSINSTALLLOCATION);
200 X(BINDSTATUS_DECODING);
201 X(BINDSTATUS_LOADINGMIMEHANDLER);
202 X(BINDSTATUS_CONTENTDISPOSITIONATTACH);
203 X(BINDSTATUS_FILTERREPORTMIMETYPE);
204 X(BINDSTATUS_CLSIDCANINSTANTIATE);
205 X(BINDSTATUS_IUNKNOWNAVAILABLE);
206 X(BINDSTATUS_DIRECTBIND);
207 X(BINDSTATUS_RAWMIMETYPE);
208 X(BINDSTATUS_PROXYDETECTING);
209 X(BINDSTATUS_ACCEPTRANGES);
210 X(BINDSTATUS_COOKIE_SENT);
211 X(BINDSTATUS_COMPACT_POLICY_RECEIVED);
212 X(BINDSTATUS_COOKIE_SUPPRESSED);
213 X(BINDSTATUS_COOKIE_STATE_UNKNOWN);
214 X(BINDSTATUS_COOKIE_STATE_ACCEPT);
215 X(BINDSTATUS_COOKIE_STATE_REJECT);
216 X(BINDSTATUS_COOKIE_STATE_PROMPT);
217 X(BINDSTATUS_COOKIE_STATE_LEASH);
218 X(BINDSTATUS_COOKIE_STATE_DOWNGRADE);
219 X(BINDSTATUS_POLICY_HREF);
220 X(BINDSTATUS_P3P_HEADER);
221 X(BINDSTATUS_SESSION_COOKIE_RECEIVED);
222 X(BINDSTATUS_PERSISTENT_COOKIE_RECEIVED);
223 X(BINDSTATUS_SESSION_COOKIES_ALLOWED);
224 X(BINDSTATUS_CACHECONTROL);
225 X(BINDSTATUS_CONTENTDISPOSITIONFILENAME);
226 X(BINDSTATUS_MIMETEXTPLAINMISMATCH);
227 X(BINDSTATUS_PUBLISHERAVAILABLE);
228 X(BINDSTATUS_DISPLAYNAMEAVAILABLE);
229#undef X
230 default:
231 return wine_dbg_sprintf("(invalid status %lu)", status);
232 }
233}
const char * wine_dbg_sprintf(const char *format,...)
Definition: compat.c:296
Definition: ps.c:97
#define X(x)

Referenced by BindStatusCallback_OnProgress(), InternetProtocolSink_ReportProgress(), and ProtocolSinkHandler_ReportProgress().

◆ DEFINE_GUID()

DEFINE_GUID ( CLSID_CUri  ,
0xDF2FCE13  ,
0x25EC  ,
0x45BB  ,
0x9D  ,
0x4C  ,
0xCE  ,
0xCD  ,
0x47  ,
0xC2  ,
0x43  ,
0x0C   
)

◆ detach_thread()

static void detach_thread ( void  )
static

Definition at line 106 of file urlmon_main.c.

107{
109
111 return;
112
114 if(!data)
115 return;
116
118 list_remove(&data->entry);
120
121 if(data->notif_hwnd) {
122 WARN("notif_hwnd not destroyed\n");
123 DestroyWindow(data->notif_hwnd);
124 }
125
126 free(data);
127}
static void list_remove(struct list_entry *entry)
Definition: list.h:90
#define free
Definition: debug_ros.c:5
LPVOID WINAPI TlsGetValue(IN DWORD Index)
Definition: thread.c:1240
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
static DWORD urlmon_tls
Definition: urlmon_main.c:44
static CRITICAL_SECTION tls_cs
Definition: urlmon_main.c:50
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
#define TLS_OUT_OF_INDEXES
Definition: winbase.h:529
BOOL WINAPI DestroyWindow(_In_ HWND)

Referenced by DllMain().

◆ DllCanUnloadNow()

HRESULT WINAPI DllCanUnloadNow ( void  )

Definition at line 249 of file urlmon_main.c.

250{
251 return URLMON_refCount != 0 ? S_FALSE : S_OK;
252}
LONG URLMON_refCount
Definition: urlmon_main.c:40
#define S_FALSE
Definition: winerror.h:3451

◆ DllGetClassObject()

HRESULT WINAPI DllGetClassObject ( REFCLSID  rclsid,
REFIID  riid,
LPVOID ppv 
)

Definition at line 428 of file urlmon_main.c.

429{
430 unsigned int i;
431 HRESULT hr;
432
433 TRACE("(%s,%s,%p)\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv);
434
435 for (i = 0; i < ARRAY_SIZE(object_creation); i++)
436 {
437 if (IsEqualGUID(object_creation[i].clsid, rclsid))
438 return IClassFactory_QueryInterface(object_creation[i].cf, riid, ppv);
439 }
440
442 if(SUCCEEDED(hr))
443 return hr;
444
445 FIXME("%s: no class found.\n", debugstr_guid(rclsid));
447}
#define ARRAY_SIZE(A)
Definition: main.h:20
HRESULT hr
Definition: delayimp.cpp:582
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define SUCCEEDED(hr)
Definition: intsafe.h:50
const CLSID * clsid
Definition: msctf.cpp:50
static const struct object_creation_info object_creation[]
Definition: urlmon_main.c:384
HRESULT WINAPI URLMON_DllGetClassObject(REFCLSID rclsid, REFIID iid, LPVOID *ppv)
#define CLASS_E_CLASSNOTAVAILABLE
Definition: winerror.h:3772

◆ DllInstall()

HRESULT WINAPI DllInstall ( BOOL  bInstall,
LPCWSTR  cmdline 
)

Definition at line 238 of file urlmon_main.c.

239{
240 FIXME("(%s, %s): stub\n", bInstall?"TRUE":"FALSE",
242
243 return S_OK;
244}
TCHAR * cmdline
Definition: stretchblt.cpp:32

◆ DllMain()

BOOL WINAPI DllMain ( HINSTANCE  hinstDLL,
DWORD  fdwReason,
LPVOID  fImpLoad 
)

Definition at line 148 of file urlmon_main.c.

149{
150 TRACE("%p 0x%lx %p\n", hinstDLL, fdwReason, fImpLoad);
151
152 URLMON_DllMain( hinstDLL, fdwReason, fImpLoad );
153
154 switch(fdwReason) {
156 urlmon_instance = hinstDLL;
157 init_session();
158 break;
159
161 if (fImpLoad) break;
164 break;
165
168 break;
169 }
170 return TRUE;
171}
static DWORD const fdwReason
DWORD LPVOID fImpLoad
Definition: misc.cpp:136
#define TRUE
Definition: types.h:120
#define DLL_THREAD_DETACH
Definition: compat.h:133
#define DLL_PROCESS_ATTACH
Definition: compat.h:131
#define DLL_PROCESS_DETACH
Definition: compat.h:130
static void init_session(void)
Definition: urlmon_main.c:399
static void detach_thread(void)
Definition: urlmon_main.c:106
HINSTANCE urlmon_instance
Definition: urlmon_main.c:41
static void process_detach(void)
Definition: urlmon_main.c:129
BOOL WINAPI URLMON_DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)

◆ DllRegisterServer()

HRESULT WINAPI DllRegisterServer ( void  )

Definition at line 463 of file urlmon_main.c.

464{
465 HRESULT hr;
466
467 TRACE("\n");
468
470 return SUCCEEDED(hr) ? register_inf(TRUE) : hr;
471}
static HRESULT register_inf(BOOL doregister)
Definition: urlmon_main.c:449
HRESULT WINAPI URLMON_DllRegisterServer(void)

◆ DllRegisterServerEx()

HRESULT WINAPI DllRegisterServerEx ( void  )

Definition at line 489 of file urlmon_main.c.

490{
491 FIXME("(void): stub\n");
492
493 return E_FAIL;
494}
#define E_FAIL
Definition: ddrawi.h:102

◆ DllUnregisterServer()

HRESULT WINAPI DllUnregisterServer ( void  )

Definition at line 476 of file urlmon_main.c.

477{
478 HRESULT hr;
479
480 TRACE("\n");
481
483 return SUCCEEDED(hr) ? register_inf(FALSE) : hr;
484}
#define FALSE
Definition: types.h:117
HRESULT WINAPI URLMON_DllUnregisterServer(void)

◆ Extract()

HRESULT WINAPI Extract ( void dest,
LPCSTR  szCabName 
)

Definition at line 721 of file urlmon_main.c.

722{
723 HRESULT (WINAPI *pExtract)(void *, LPCSTR);
724
725 if (!hCabinet)
726 hCabinet = LoadLibraryA("cabinet.dll");
727
729 pExtract = (void *)GetProcAddress(hCabinet, "Extract");
730 if (!pExtract) return HRESULT_FROM_WIN32(GetLastError());
731
732 return pExtract(dest, szCabName);
733}
#define GetProcAddress(x, y)
Definition: compat.h:753
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryA(LPCSTR lpLibFileName)
Definition: loader.c:111
static char * dest
Definition: rtl.c:149
const char * LPCSTR
Definition: typedefs.h:52
static HMODULE hCabinet
Definition: urlmon_main.c:43
DWORD WINAPI GetLastError(void)
Definition: except.c:1042
#define HRESULT
Definition: msvc.h:7
#define WINAPI
Definition: msvc.h:6
static HRESULT HRESULT_FROM_WIN32(unsigned int x)
Definition: winerror.h:210

◆ FaultInIEFeature()

HRESULT WINAPI FaultInIEFeature ( HWND  hwnd,
uCLSSPEC *  pClassSpec,
QUERYCONTEXT *  pQuery,
DWORD  flags 
)

Definition at line 529 of file urlmon_main.c.

531{
532 FIXME("%p %p %p %08lx\n", hwnd, pClassSpec, pQuery, flags);
533 return E_NOTIMPL;
534}
GLbitfield flags
Definition: glext.h:7161
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023

◆ FlushUrlmonZonesCache()

void WINAPI FlushUrlmonZonesCache ( void  )

Definition at line 816 of file urlmon_main.c.

817{
818 FIXME("stub\n");
819}

◆ free_tls_list()

static void free_tls_list ( void  )
static

Definition at line 90 of file urlmon_main.c.

91{
93
95 return;
96
97 while(!list_empty(&tls_list)) {
99 list_remove(&data->entry);
100 free(data);
101 }
102
104}
static int list_empty(struct list_entry *head)
Definition: list.h:58
BOOL WINAPI TlsFree(IN DWORD Index)
Definition: thread.c:1166
uint32_t entry
Definition: isohybrid.c:63
Definition: list.h:15
#define LIST_ENTRY(type)
Definition: queue.h:175
static struct list tls_list
Definition: urlmon_main.c:48

Referenced by process_detach().

◆ get_tls_data()

tls_data_t * get_tls_data ( void  )

Definition at line 60 of file urlmon_main.c.

61{
63
65 DWORD tls = TlsAlloc();
67 return NULL;
68
70 if(tls != urlmon_tls)
71 TlsFree(tls);
72 }
73
75 if(!data) {
76 data = calloc(1, sizeof(tls_data_t));
77 if(!data)
78 return NULL;
79
81 list_add_tail(&tls_list, &data->entry);
83
85 }
86
87 return data;
88}
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
Definition: list.h:83
BOOL WINAPI TlsSetValue(IN DWORD Index, IN LPVOID Value)
Definition: thread.c:1276
DWORD WINAPI DECLSPEC_HOTPATCH TlsAlloc(void)
Definition: thread.c:657
#define InterlockedCompareExchange
Definition: interlocked.h:119
long LONG
Definition: pedump.c:60
#define calloc
Definition: rosglue.h:14
static DWORD tls
Definition: sock.c:229

Referenced by get_notif_hwnd(), notif_wnd_proc(), and release_notif_hwnd().

◆ GetClassFileOrMime()

HRESULT WINAPI GetClassFileOrMime ( LPBC  pBC,
LPCWSTR  pszFilename,
LPVOID  pBuffer,
DWORD  cbBuffer,
LPCWSTR  pszMimeType,
DWORD  dwReserved,
CLSID pclsid 
)

Definition at line 709 of file urlmon_main.c.

712{
713 FIXME("(%p, %s, %p, %ld, %s, 0x%08lx, %p): stub\n", pBC, debugstr_w(pszFilename), pBuffer,
714 cbBuffer, debugstr_w(pszMimeType), dwReserved, pclsid);
715 return E_NOTIMPL;
716}
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
Definition: mswsock.h:95
PVOID pBuffer

◆ GetIUriPriv()

HRESULT WINAPI GetIUriPriv ( IUri uri,
void **  p 
)

Definition at line 846 of file urlmon_main.c.

847{
848 FIXME("(%p,%p): stub\n", uri, p);
849 *p = NULL;
850 return E_NOTIMPL;
851}
GLfloat GLfloat p
Definition: glext.h:8902
const WCHAR * uri
Definition: sec_mgr.c:1564

◆ impl_from_IClassFactory()

static ClassFactory * impl_from_IClassFactory ( IClassFactory iface)
inlinestatic

Definition at line 265 of file urlmon_main.c.

266{
267 return CONTAINING_RECORD(iface, ClassFactory, IClassFactory_iface);
268}
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260

Referenced by CF_CreateInstance().

◆ init_session()

static void init_session ( void  )
static

Definition at line 399 of file urlmon_main.c.

400{
401 unsigned int i;
402
403 for(i = 0; i < ARRAY_SIZE(object_creation); i++) {
407 }
408}
HRESULT register_namespace(IClassFactory *cf, REFIID clsid, LPCWSTR protocol, BOOL urlmon_protocol)
Definition: session.c:114

Referenced by DllMain().

◆ IsLoggingEnabledA()

BOOL WINAPI IsLoggingEnabledA ( LPCSTR  url)

Definition at line 738 of file urlmon_main.c.

739{
740 FIXME("(%s)\n", debugstr_a(url));
741 return FALSE;
742}
#define debugstr_a
Definition: kernel32.h:31
static const WCHAR url[]
Definition: encode.c:1384

◆ IsLoggingEnabledW()

BOOL WINAPI IsLoggingEnabledW ( LPCWSTR  url)

Definition at line 747 of file urlmon_main.c.

748{
749 FIXME("(%s)\n", debugstr_w(url));
750 return FALSE;
751}

◆ IsProtectedModeURL()

BOOL WINAPI IsProtectedModeURL ( const WCHAR url)

Definition at line 757 of file urlmon_main.c.

758{
759 FIXME("stub: %s\n", debugstr_w(url));
760 return TRUE;
761}

◆ IsValidURL()

HRESULT WINAPI IsValidURL ( LPBC  pBC,
LPCWSTR  szURL,
DWORD  dwReserved 
)

Definition at line 514 of file urlmon_main.c.

515{
516 FIXME("(%p, %s, %ld): stub\n", pBC, debugstr_w(szURL), dwReserved);
517
518 if (dwReserved || !szURL)
519 return E_INVALIDARG;
520
521 return S_OK;
522}

Referenced by test_IsValidURL().

◆ LogSqmBits()

int WINAPI LogSqmBits ( DWORD  unk1,
DWORD  unk2 
)

Definition at line 767 of file urlmon_main.c.

768{
769 FIXME("stub: %ld %ld\n", unk1, unk2);
770 return 0;
771}
static DWORD unk1
Definition: cursoricon.c:1804

◆ LogSqmIncrement()

int WINAPI LogSqmIncrement ( DWORD  unk1,
DWORD  unk2 
)

Definition at line 777 of file urlmon_main.c.

778{
779 FIXME("stub: %ld %ld\n", unk1, unk2);
780 return 0;
781}

◆ LogSqmUXCommandOffsetInternal()

void WINAPI LogSqmUXCommandOffsetInternal ( DWORD  unk1,
DWORD  unk2,
DWORD  unk3,
DWORD  unk4 
)

Definition at line 787 of file urlmon_main.c.

788{
789 FIXME("stub: %ld %ld %ld %ld\n", unk1, unk2, unk3, unk4);
790}

◆ MapUriToBrowserEmulationState()

int WINAPI MapUriToBrowserEmulationState ( DWORD  unk1,
DWORD  unk2,
DWORD  unk3 
)

Definition at line 796 of file urlmon_main.c.

797{
798 FIXME("stub: %ld %ld %ld\n", unk1, unk2, unk3);
799 return 0;
800}

◆ process_detach()

static void process_detach ( void  )
static

Definition at line 129 of file urlmon_main.c.

130{
132
136
137 if (hCabinet)
139
140 free_session();
143}
void unregister_notif_wnd_class(void)
Definition: bindprot.c:101
#define FreeLibrary(x)
Definition: compat.h:748
HINTERNET get_internet_session(IInternetBindInfo *bind_info)
Definition: protocol.c:290
static HINTERNET internet_session
Definition: protocol.c:288
void free_session(void)
Definition: session.c:795
BOOL WINAPI InternetCloseHandle(HINTERNET hInternet)
Definition: internet.c:1414
static void free_tls_list(void)
Definition: urlmon_main.c:90

Referenced by DllMain().

◆ register_inf()

static HRESULT register_inf ( BOOL  doregister)
static

Definition at line 449 of file urlmon_main.c.

450{
451 HRESULT (WINAPI *pRegInstall)(HMODULE hm, LPCSTR pszSection, const STRTABLEA* pstTable);
452 HMODULE hAdvpack;
453
454 hAdvpack = LoadLibraryW(L"advpack.dll");
455 pRegInstall = (void *)GetProcAddress(hAdvpack, "RegInstall");
456
457 return pRegInstall(hProxyDll, doregister ? "RegisterDll" : "UnregisterDll", NULL);
458}
HINSTANCE hProxyDll
Definition: combase.c:40
#define LoadLibraryW(x)
Definition: compat.h:747
#define L(x)
Definition: resources.c:13

Referenced by DllRegisterServer(), and DllUnregisterServer().

◆ RegisterMediaTypes()

HRESULT WINAPI RegisterMediaTypes ( UINT  types,
LPCSTR szTypes,
CLIPFORMAT *  cfTypes 
)

Definition at line 825 of file urlmon_main.c.

826{
827 FIXME("stub: %u %p %p\n", types, szTypes, cfTypes);
828 return E_INVALIDARG;
829}
Definition: cmds.c:130

◆ ReleaseBindInfo()

void WINAPI ReleaseBindInfo ( BINDINFO *  pbindinfo)

Definition at line 561 of file urlmon_main.c.

562{
563 DWORD size;
564
565 TRACE("(%p)\n", pbindinfo);
566
567 if(!pbindinfo || !(size = pbindinfo->cbSize))
568 return;
569
570 CoTaskMemFree(pbindinfo->szExtraInfo);
571 ReleaseStgMedium(&pbindinfo->stgmedData);
572
573 if(offsetof(BINDINFO, szExtraInfo) < size)
574 CoTaskMemFree(pbindinfo->szCustomVerb);
575
576 if(pbindinfo->pUnk && offsetof(BINDINFO, pUnk) < size)
577 IUnknown_Release(pbindinfo->pUnk);
578
579 memset(pbindinfo, 0, size);
580 pbindinfo->cbSize = size;
581}
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
Definition: dplayx.c:30
#define offsetof(TYPE, MEMBER)

Referenced by AboutProtocol_Start(), Binding_Release(), DownloadBSC_GetBindInfo(), FileProtocol_StartEx(), internet_status_callback(), ITSProtocol_Start(), MkProtocol_StartEx(), navigate_hlink(), ResProtocol_Start(), and test_bsc_marshaling().

◆ ShouldShowIntranetWarningSecband()

BOOL WINAPI ShouldShowIntranetWarningSecband ( DWORD  unk)

Definition at line 835 of file urlmon_main.c.

836{
837 FIXME("%lx: stub\n", unk);
838 return FALSE;
839}

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( urlmon  )

Variable Documentation

◆ ClassFactoryVtbl

const IClassFactoryVtbl ClassFactoryVtbl
static
Initial value:
=
{
}
static HRESULT WINAPI CF_CreateInstance(IClassFactory *iface, IUnknown *outer, REFIID riid, void **ppv)
Definition: urlmon_main.c:304
static ULONG WINAPI CF_Release(IClassFactory *iface)
Definition: urlmon_main.c:297
static HRESULT WINAPI CF_QueryInterface(IClassFactory *iface, REFIID riid, LPVOID *ppv)
Definition: urlmon_main.c:270
static HRESULT WINAPI CF_LockServer(LPCLASSFACTORY iface, BOOL dolock)
Definition: urlmon_main.c:333
static ULONG WINAPI CF_AddRef(IClassFactory *iface)
Definition: urlmon_main.c:291

Definition at line 345 of file urlmon_main.c.

◆ CUriCF

ClassFactory CUriCF
static
Initial value:
=
HRESULT Uri_Construct(IUnknown *pUnkOuter, LPVOID *ppobj)
Definition: uri.c:5338
static const IClassFactoryVtbl ClassFactoryVtbl
Definition: urlmon_main.c:345

Definition at line 374 of file urlmon_main.c.

◆ FileProtocolCF

ClassFactory FileProtocolCF
static
Initial value:
=
HRESULT FileProtocol_Construct(IUnknown *outer, LPVOID *ppobj)
Definition: file.c:420

Definition at line 354 of file urlmon_main.c.

◆ FtpProtocolCF

ClassFactory FtpProtocolCF
static
Initial value:
=
HRESULT FtpProtocol_Construct(IUnknown *outer, void **ppv)
Definition: ftp.c:454

Definition at line 356 of file urlmon_main.c.

◆ GopherProtocolCF

ClassFactory GopherProtocolCF
static
Initial value:
=
HRESULT GopherProtocol_Construct(IUnknown *pUnkOuter, LPVOID *ppobj)
Definition: gopher.c:312

Definition at line 358 of file urlmon_main.c.

◆ hCabinet

HMODULE hCabinet = NULL
static

Definition at line 43 of file urlmon_main.c.

Referenced by Extract(), ExtractFilesA(), and process_detach().

◆ HttpProtocolCF

ClassFactory HttpProtocolCF
static
Initial value:
=
HRESULT HttpProtocol_Construct(IUnknown *outer, void **ppv)
Definition: http.c:977

Definition at line 360 of file urlmon_main.c.

◆ HttpSProtocolCF

ClassFactory HttpSProtocolCF
static
Initial value:
=
HRESULT HttpSProtocol_Construct(IUnknown *outer, void **ppv)
Definition: http.c:984

Definition at line 362 of file urlmon_main.c.

◆ MimeFilterCF

ClassFactory MimeFilterCF
static
Initial value:
=
HRESULT MimeFilter_Construct(IUnknown *pUnkOuter, LPVOID *ppobj)
Definition: mimefilter.c:246

Definition at line 372 of file urlmon_main.c.

◆ MkProtocolCF

ClassFactory MkProtocolCF
static
Initial value:
=
HRESULT MkProtocol_Construct(IUnknown *outer, void **ppv)
Definition: mk.c:365

Definition at line 364 of file urlmon_main.c.

◆ object_creation

const struct object_creation_info object_creation[]
static
Initial value:
=
{
{ &CLSID_FileProtocol, &FileProtocolCF.IClassFactory_iface, L"file" },
{ &CLSID_FtpProtocol, &FtpProtocolCF.IClassFactory_iface, L"ftp" },
{ &CLSID_GopherProtocol, &GopherProtocolCF.IClassFactory_iface, L"gopher" },
{ &CLSID_HttpProtocol, &HttpProtocolCF.IClassFactory_iface, L"http" },
{ &CLSID_HttpSProtocol, &HttpSProtocolCF.IClassFactory_iface, L"https" },
{ &CLSID_MkProtocol, &MkProtocolCF.IClassFactory_iface, L"mk" },
{ &CLSID_InternetSecurityManager, &SecurityManagerCF.IClassFactory_iface, NULL },
{ &CLSID_InternetZoneManager, &ZoneManagerCF.IClassFactory_iface, NULL },
{ &CLSID_StdURLMoniker, &StdURLMonikerCF.IClassFactory_iface, NULL },
{ &CLSID_DeCompMimeFilter, &MimeFilterCF.IClassFactory_iface, NULL },
}
IClassFactory IClassFactory_iface
Definition: main.c:210
static ClassFactory HttpProtocolCF
Definition: urlmon_main.c:360
static ClassFactory MkProtocolCF
Definition: urlmon_main.c:364
static ClassFactory StdURLMonikerCF
Definition: urlmon_main.c:370
static ClassFactory FileProtocolCF
Definition: urlmon_main.c:354
static ClassFactory CUriCF
Definition: urlmon_main.c:374
static ClassFactory MimeFilterCF
Definition: urlmon_main.c:372
static ClassFactory ZoneManagerCF
Definition: urlmon_main.c:368
static ClassFactory SecurityManagerCF
Definition: urlmon_main.c:366
static ClassFactory HttpSProtocolCF
Definition: urlmon_main.c:362
static ClassFactory GopherProtocolCF
Definition: urlmon_main.c:358
static ClassFactory FtpProtocolCF
Definition: urlmon_main.c:356
GUID const CLSID_CUri

Definition at line 384 of file urlmon_main.c.

Referenced by DllGetClassObject(), and init_session().

◆ SecurityManagerCF

ClassFactory SecurityManagerCF
static
Initial value:
=
HRESULT SecManagerImpl_Construct(IUnknown *pUnkOuter, LPVOID *ppobj)
Definition: sec_mgr.c:1206

Definition at line 366 of file urlmon_main.c.

◆ StdURLMonikerCF

ClassFactory StdURLMonikerCF
static
Initial value:
=
HRESULT StdURLMoniker_Construct(IUnknown *outer, void **ppv)
Definition: umon.c:588

Definition at line 370 of file urlmon_main.c.

◆ tls_cs

static CRITICAL_SECTION tls_cs = { &tls_cs_dbg, -1, 0, 0, 0, 0 }
static

Definition at line 50 of file urlmon_main.c.

Referenced by detach_thread(), DllMain(), and get_tls_data().

◆ tls_cs_dbg

CRITICAL_SECTION_DEBUG tls_cs_dbg
static
Initial value:
=
{
0, 0, &tls_cs,
0, 0, { (DWORD_PTR)(__FILE__ ": tls") }
}
#define DWORD_PTR
Definition: treelist.c:76
static CRITICAL_SECTION_DEBUG tls_cs_dbg
Definition: urlmon_main.c:51

Definition at line 51 of file urlmon_main.c.

◆ tls_list

struct list tls_list = LIST_INIT(tls_list)
static

Definition at line 48 of file urlmon_main.c.

Referenced by free_tls_list(), and get_tls_data().

◆ urlmon_instance

HINSTANCE urlmon_instance

Definition at line 41 of file urlmon_main.c.

Referenced by DllMain(), failure_msgbox(), install_warning(), and update_counter().

◆ URLMON_refCount

LONG URLMON_refCount = 0

Definition at line 40 of file urlmon_main.c.

Referenced by DllCanUnloadNow(), URLMON_LockModule(), and URLMON_UnlockModule().

◆ urlmon_tls

DWORD urlmon_tls = TLS_OUT_OF_INDEXES
static

Definition at line 44 of file urlmon_main.c.

Referenced by detach_thread(), free_tls_list(), and get_tls_data().

◆ ZoneManagerCF

ClassFactory ZoneManagerCF
static
Initial value:
=
HRESULT ZoneMgrImpl_Construct(IUnknown *pUnkOuter, LPVOID *ppobj)
Definition: sec_mgr.c:1781

Definition at line 368 of file urlmon_main.c.