ReactOS  0.4.15-dev-4857-g47842d7
main.c File Reference
#include "mshtml_private.h"
#include <advpub.h>
#include <rpcproxy.h>
#include <mlang.h>
#include <initguid.h>
Include dependency graph for main.c:

Go to the source code of this file.

Classes

class  ClassFactory
 

Macros

#define INF_SET_ID(id)
 
#define INF_SET_CLSID(clsid)   INF_SET_ID(CLSID_ ## clsid)
 
#define X(x)   if(IsEqualGUID(iid, &x)) return #x
 
#define XIID(x)   X(IID_##x);
 
#define XDIID(x)   X(DIID_##x);
 

Typedefs

typedef HRESULT(* CreateInstanceFunc) (IUnknown *, REFIID, void **)
 

Functions

 void (__cdecl *ccp_init)(ExternalCycleCollectionParticipant *
 
const CCObjCallbacknsrefcnt (__cdecl *ccref_incr)(nsCycleCollectingAutoRefCnt *
 
UINT cp_from_charset_string (BSTR charset)
 
static void thread_detach (void)
 
static void free_strings (void)
 
static void process_detach (void)
 
void set_statustext (HTMLDocumentObj *doc, INT id, LPCWSTR arg)
 
HRESULT do_query_service (IUnknown *unk, REFGUID guid_service, REFIID riid, void **ppv)
 
HINSTANCE get_shdoclc (void)
 
HDC get_display_dc (void)
 
BOOL WINAPI DllMain (HINSTANCE hInstDLL, DWORD fdwReason, LPVOID reserved)
 
static ClassFactoryimpl_from_IClassFactory (IClassFactory *iface)
 
static HRESULT WINAPI ClassFactory_QueryInterface (IClassFactory *iface, REFGUID riid, void **ppvObject)
 
static ULONG WINAPI ClassFactory_AddRef (IClassFactory *iface)
 
static ULONG WINAPI ClassFactory_Release (IClassFactory *iface)
 
static HRESULT WINAPI ClassFactory_CreateInstance (IClassFactory *iface, IUnknown *pUnkOuter, REFIID riid, void **ppvObject)
 
static HRESULT WINAPI ClassFactory_LockServer (IClassFactory *iface, BOOL dolock)
 
static HRESULT ClassFactory_Create (REFIID riid, void **ppv, CreateInstanceFunc fnCreateInstance)
 
HRESULT WINAPI DllGetClassObject (REFCLSID rclsid, REFIID riid, LPVOID *ppv)
 
HRESULT WINAPI DllCanUnloadNow (void)
 
HRESULT WINAPI RunHTMLApplication (HINSTANCE hinst, HINSTANCE hPrevInst, LPSTR szCmdLine, INT nCmdShow)
 
DWORD WINAPI RNIGetCompatibleVersion (void)
 
HRESULT WINAPI DllInstall (BOOL bInstall, LPCWSTR cmdline)
 
HRESULT WINAPI ShowHTMLDialog (HWND hwndParent, IMoniker *pMk, VARIANT *pvarArgIn, WCHAR *pchOptions, VARIANT *pvarArgOut)
 
void WINAPI PrintHTML (HWND hwnd, HINSTANCE handle, LPCSTR cmdline, INT show)
 
 DEFINE_GUID (CLSID_CBackgroundPropertyPage, 0x3050F232, 0x98B5, 0x11CF, 0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B)
 
 DEFINE_GUID (CLSID_CCDAnchorPropertyPage, 0x3050F1FC, 0x98B5, 0x11CF, 0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B)
 
 DEFINE_GUID (CLSID_CCDGenericPropertyPage, 0x3050F17F, 0x98B5, 0x11CF, 0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B)
 
 DEFINE_GUID (CLSID_CDwnBindInfo, 0x3050F3C2, 0x98B5, 0x11CF, 0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B)
 
 DEFINE_GUID (CLSID_CHiFiUses, 0x5AAF51B3, 0xB1F0, 0x11D1, 0xB6, 0xAB, 0x00, 0xA0, 0xC9, 0x08, 0x33, 0xE9)
 
 DEFINE_GUID (CLSID_CHtmlComponentConstructor, 0x3050F4F8, 0x98B5, 0x11CF, 0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B)
 
 DEFINE_GUID (CLSID_CInlineStylePropertyPage, 0x3050F296, 0x98B5, 0x11CF, 0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B)
 
 DEFINE_GUID (CLSID_CPeerHandler, 0x5AAF51B2, 0xB1F0, 0x11D1, 0xB6, 0xAB, 0x00, 0xA0, 0xC9, 0x08, 0x33, 0xE9)
 
 DEFINE_GUID (CLSID_CRecalcEngine, 0x3050F499, 0x98B5, 0x11CF, 0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B)
 
 DEFINE_GUID (CLSID_CSvrOMUses, 0x3050F4F0, 0x98B5, 0x11CF, 0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B)
 
 DEFINE_GUID (CLSID_CrSource, 0x65014010, 0x9F62, 0x11D1, 0xA6, 0x51, 0x00, 0x60, 0x08, 0x11, 0xD5, 0xCE)
 
 DEFINE_GUID (CLSID_ExternalFrameworkSite, 0x3050F163, 0x98B5, 0x11CF, 0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B)
 
 DEFINE_GUID (CLSID_HTADocument, 0x3050F5C8, 0x98B5, 0x11CF, 0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B)
 
 DEFINE_GUID (CLSID_HTMLPluginDocument, 0x25336921, 0x03F9, 0x11CF, 0x8F, 0xD0, 0x00, 0xAA, 0x00, 0x68, 0x6F, 0x13)
 
 DEFINE_GUID (CLSID_HTMLPopup, 0x3050F667, 0x98B5, 0x11CF, 0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B)
 
 DEFINE_GUID (CLSID_HTMLPopupDoc, 0x3050F67D, 0x98B5, 0x11CF, 0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B)
 
 DEFINE_GUID (CLSID_HTMLServerDoc, 0x3050F4E7, 0x98B5, 0x11CF, 0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B)
 
 DEFINE_GUID (CLSID_IImageDecodeFilter, 0x607FD4E8, 0x0A03, 0x11D1, 0xAB, 0x1D, 0x00, 0xC0, 0x4F, 0xC9, 0xB3, 0x04)
 
 DEFINE_GUID (CLSID_IImgCtx, 0x3050F3D6, 0x98B5, 0x11CF, 0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B)
 
 DEFINE_GUID (CLSID_IntDitherer, 0x05F6FE1A, 0xECEF, 0x11D0, 0xAA, 0xE7, 0x00, 0xC0, 0x4F, 0xC9, 0xB3, 0x04)
 
 DEFINE_GUID (CLSID_MHTMLDocument, 0x3050F3D9, 0x98B5, 0x11CF, 0xBB, 0x82, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x0B)
 
 DEFINE_GUID (CLSID_TridentAPI, 0x429AF92C, 0xA51F, 0x11D2, 0x86, 0x1E, 0x00, 0xC0, 0x4F, 0xA3, 0x5C, 0x89)
 
static HRESULT register_server (BOOL do_register)
 
HRESULT WINAPI DllRegisterServer (void)
 
HRESULT WINAPI DllUnregisterServer (void)
 
const chardebugstr_mshtml_guid (const GUID *iid)
 

Variables

HINSTANCE hInst
 
DWORD mshtml_tls = TLS_OUT_OF_INDEXES
 
const CCObjCallback nsISupports nsISupports ExternalCycleCollectionParticipant nsrefcnt
 
const char nsCycleCollectionTraversalCallback const char nsCycleCollectionTraversalCallback *static HINSTANCE shdoclc = NULL
 
static HDC display_dc
 
static WCHARstatus_strings [IDS_STATUS_LAST-IDS_STATUS_FIRST+1]
 
static IMultiLanguage2 * mlang
 
static const IClassFactoryVtbl HTMLClassFactoryVtbl
 

Macro Definition Documentation

◆ INF_SET_CLSID

#define INF_SET_CLSID (   clsid)    INF_SET_ID(CLSID_ ## clsid)

Definition at line 417 of file main.c.

◆ INF_SET_ID

#define INF_SET_ID (   id)
Value:
do \
{ \
static CHAR name[] = #id; \
\
pse[i].pszName = name; \
clsids[i++] = &id; \
} while (0)
char CHAR
Definition: xmlstorage.h:175
const char * name
Definition: main.c:224
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
int id
Definition: main.c:4907
Definition: name.c:38

Definition at line 408 of file main.c.

◆ X

#define X (   x)    if(IsEqualGUID(iid, &x)) return #x

◆ XDIID

#define XDIID (   x)    X(DIID_##x);

◆ XIID

#define XIID (   x)    X(IID_##x);

Typedef Documentation

◆ CreateInstanceFunc

typedef HRESULT(* CreateInstanceFunc) (IUnknown *, REFIID, void **)

Definition at line 208 of file main.c.

Function Documentation

◆ ClassFactory_AddRef()

static ULONG WINAPI ClassFactory_AddRef ( IClassFactory iface)
static

Definition at line 233 of file main.c.

234 {
237  TRACE("(%p) ref = %u\n", This, ref);
238  return ref;
239 }
Definition: send.c:48
GLenum GLint ref
Definition: glext.h:6028
#define TRACE(s)
Definition: solgame.cpp:4
static ClassFactory * impl_from_IClassFactory(IClassFactory *iface)
Definition: main.c:215
#define InterlockedIncrement
Definition: armddk.h:53
unsigned int ULONG
Definition: retypes.h:1

◆ ClassFactory_Create()

static HRESULT ClassFactory_Create ( REFIID  riid,
void **  ppv,
CreateInstanceFunc  fnCreateInstance 
)
static

Definition at line 278 of file main.c.

279 {
281  HRESULT hres;
282 
283  ret->IClassFactory_iface.lpVtbl = &HTMLClassFactoryVtbl;
284  ret->ref = 0;
285  ret->fnCreateInstance = fnCreateInstance;
286 
287  hres = IClassFactory_QueryInterface(&ret->IClassFactory_iface, riid, ppv);
288  if(FAILED(hres)) {
289  heap_free(ret);
290  *ppv = NULL;
291  }
292  return hres;
293 }
REFIID riid
Definition: precomp.h:44
REFIID LPVOID * ppv
Definition: atlbase.h:39
static void * heap_alloc(size_t len)
Definition: appwiz.h:65
static const IClassFactoryVtbl HTMLClassFactoryVtbl
Definition: main.c:270
HRESULT hres
Definition: protocol.c:465
LONG HRESULT
Definition: typedefs.h:79
HRESULT(* fnCreateInstance)(LPVOID *ppObj)
Definition: main.c:40
int ret
#define NULL
Definition: types.h:112
static BOOL heap_free(void *mem)
Definition: appwiz.h:75

Referenced by DllGetClassObject().

◆ ClassFactory_CreateInstance()

static HRESULT WINAPI ClassFactory_CreateInstance ( IClassFactory iface,
IUnknown pUnkOuter,
REFIID  riid,
void **  ppvObject 
)
static

Definition at line 255 of file main.c.

257 {
259  return This->fnCreateInstance(pUnkOuter, riid, ppvObject);
260 }
REFIID riid
Definition: precomp.h:44
static ClassFactory * impl_from_IClassFactory(IClassFactory *iface)
Definition: main.c:215
REFIID LPVOID * ppvObject
Definition: precomp.h:44

◆ ClassFactory_LockServer()

static HRESULT WINAPI ClassFactory_LockServer ( IClassFactory iface,
BOOL  dolock 
)
static

Definition at line 262 of file main.c.

263 {
264  TRACE("(%p)->(%x)\n", iface, dolock);
265 
266  /* We never unload the DLL. See DllCanUnloadNow(). */
267  return S_OK;
268 }
#define TRACE(s)
Definition: solgame.cpp:4
#define S_OK
Definition: intsafe.h:52

◆ ClassFactory_QueryInterface()

static HRESULT WINAPI ClassFactory_QueryInterface ( IClassFactory iface,
REFGUID  riid,
void **  ppvObject 
)
static

Definition at line 220 of file main.c.

221 {
223  IClassFactory_AddRef(iface);
224  *ppvObject = iface;
225  return S_OK;
226  }
227 
228  WARN("not supported iid %s\n", debugstr_mshtml_guid(riid));
229  *ppvObject = NULL;
230  return E_NOINTERFACE;
231 }
#define E_NOINTERFACE
Definition: winerror.h:2364
REFIID riid
Definition: precomp.h:44
#define WARN(fmt,...)
Definition: debug.h:112
const char * debugstr_mshtml_guid(const GUID *iid)
Definition: main.c:542
const GUID IID_IUnknown
REFIID LPVOID * ppvObject
Definition: precomp.h:44
#define S_OK
Definition: intsafe.h:52
#define NULL
Definition: types.h:112
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: compobj.c:4112
const GUID IID_IClassFactory

◆ ClassFactory_Release()

static ULONG WINAPI ClassFactory_Release ( IClassFactory iface)
static

Definition at line 241 of file main.c.

242 {
245 
246  TRACE("(%p) ref = %u\n", This, ref);
247 
248  if(!ref) {
249  heap_free(This);
250  }
251 
252  return ref;
253 }
Definition: send.c:48
GLenum GLint ref
Definition: glext.h:6028
#define TRACE(s)
Definition: solgame.cpp:4
static ClassFactory * impl_from_IClassFactory(IClassFactory *iface)
Definition: main.c:215
#define InterlockedDecrement
Definition: armddk.h:52
unsigned int ULONG
Definition: retypes.h:1
static BOOL heap_free(void *mem)
Definition: appwiz.h:75

◆ cp_from_charset_string()

UINT cp_from_charset_string ( BSTR  charset)

Definition at line 45 of file main.c.

46 {
47  MIMECSETINFO info;
48  HRESULT hres;
49 
50  if(!mlang) {
51  IMultiLanguage2 *new_mlang;
52 
53  hres = CoCreateInstance(&CLSID_CMultiLanguage, NULL, CLSCTX_INPROC_SERVER,
54  &IID_IMultiLanguage2, (void**)&new_mlang);
55  if(FAILED(hres)) {
56  ERR("Could not create CMultiLanguage instance\n");
57  return CP_UTF8;
58  }
59 
60  if(InterlockedCompareExchangePointer((void**)&mlang, new_mlang, NULL))
61  IMultiLanguage2_Release(new_mlang);
62  }
63 
64  hres = IMultiLanguage2_GetCharsetInfo(mlang, charset, &info);
65  if(FAILED(hres)) {
66  FIXME("GetCharsetInfo failed: %08x\n", hres);
67  return CP_UTF8;
68  }
69 
70  return info.uiInternetEncoding;
71 }
CFF_Charset charset
Definition: cffcmap.c:138
#define CP_UTF8
Definition: nls.h:20
static struct _test_info info[]
Definition: SetCursorPos.c:19
#define FIXME(fmt,...)
Definition: debug.h:111
#define InterlockedCompareExchangePointer
Definition: interlocked.h:129
HRESULT hres
Definition: protocol.c:465
LONG HRESULT
Definition: typedefs.h:79
static IMultiLanguage2 * mlang
Definition: main.c:43
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
Definition: compobj.c:3325
#define ERR(fmt,...)
Definition: debug.h:110
#define NULL
Definition: types.h:112

Referenced by get_document_charset(), and nsIOService_NewURI().

◆ debugstr_mshtml_guid()

const char* debugstr_mshtml_guid ( const GUID iid)

Definition at line 542 of file main.c.

543 {
544 #define X(x) if(IsEqualGUID(iid, &x)) return #x
545  X(DIID_HTMLDocumentEvents);
546  X(DIID_HTMLDocumentEvents2);
547  X(DIID_HTMLTableEvents);
548  X(DIID_HTMLTextContainerEvents);
549  X(IID_HTMLPluginContainer);
552  X(IID_ICustomDoc);
553  X(IID_IDispatch);
554  X(IID_IDispatchEx);
555  X(IID_IDispatchJS);
556  X(IID_UndocumentedScriptIface);
558  X(IID_IEnumVARIANT);
559  X(IID_IHlinkTarget);
560  X(IID_IHTMLDocument6);
561  X(IID_IHTMLDocument7);
562  X(IID_IHTMLEditServices);
563  X(IID_IHTMLFramesCollection2);
564  X(IID_IHTMLPrivateWindow);
565  X(IID_IHtmlLoadOptions);
566  X(IID_IInternetHostSecurityManager);
567  X(IID_IMonikerProp);
568  X(IID_IObjectIdentity);
569  X(IID_IObjectSafety);
572  X(IID_IOleCommandTarget);
574  X(IID_IOleDocument);
575  X(IID_IOleDocumentView);
579  X(IID_IOleInPlaceObjectWindowless);
581  X(IID_IOleObject);
582  X(IID_IOleWindow);
583  X(IID_IOptionArray);
584  X(IID_IPersist);
586  X(IID_IPersistHistory);
587  X(IID_IPersistMoniker);
591  X(IID_IServiceProvider);
592  X(IID_ISupportErrorInfo);
593  X(IID_ITargetContainer);
594  X(IID_ITravelLogClient);
595  X(IID_IUnknown);
598  X(IID_IViewObjectEx);
599  X(IID_nsCycleCollectionISupports);
600  X(IID_nsXPCOMCycleCollectionParticipant);
601 #define XIID(x) X(IID_##x);
602 #define XDIID(x) X(DIID_##x);
603  TID_LIST
604 #undef XIID
605 #undef XDIID
606 #undef X
607 
608  return debugstr_guid(iid);
609 }
const GUID IID_IOleInPlaceFrame
const GUID IID_IViewObject
const GUID IID_IPersist
Definition: proxy.cpp:14
const GUID IID_IConnectionPointContainer
#define X(x)
const GUID IID_IEnumConnections
const GUID IID_IProvideClassInfo
#define debugstr_guid
Definition: kernel32.h:35
#define TID_LIST
Definition: ieframe.h:306
const GUID IID_IOleInPlaceObject
const GUID IID_IOleObject
const GUID IID_IOleContainer
const GUID IID_IUnknown
const IID IID_IObjectWithSite
const GUID IID_IDispatch
const GUID IID_IOleControl
const GUID IID_IPersistStreamInit
const GUID IID_IConnectionPoint
const GUID IID_IViewObject2
const GUID IID_IPropertyNotifySink
const GUID IID_IPersistFile
const GUID IID_IOleWindow
const GUID IID_IOleInPlaceUIWindow
const GUID IID_IOleInPlaceActiveObject

Referenced by ClassFactory_QueryInterface(), ConnectionPoint_QueryInterface(), ConnectionPointContainer_FindConnectionPoint(), CustomDoc_QueryInterface(), DllGetClassObject(), editsvcs_QueryInterface(), EnumConnections_QueryInterface(), Function_QueryInterface(), get_typeinfo(), HTMLAttributeCollection_QueryInterface(), HTMLCurrentStyle_QueryInterface(), HTMLDocument_Create(), HTMLDocumentNode_QI(), HTMLDOMAttribute_QueryInterface(), HTMLDOMChildrenCollection_QueryInterface(), HTMLDOMChildrenCollectionEnum_QueryInterface(), HTMLDOMImplementation_QueryInterface(), HTMLDOMNode_QI(), HTMLDOMTextNode_QI(), HTMLElementCollection_QueryInterface(), HTMLElementCollectionEnum_QueryInterface(), HTMLEmbedElement_QI(), HTMLEventObj_QueryInterface(), HTMLFiltersCollection_QueryInterface(), HTMLHeadElement_QI(), HTMLImageElementFactory_QueryInterface(), HTMLLoadOptions_Create(), HtmlLoadOptions_QueryInterface(), HTMLLocation_QueryInterface(), HTMLMimeTypesCollection_QueryInterface(), HTMLObjectElement_QI(), HTMLOptionElementFactory_QueryInterface(), HTMLPluginsCollection_QueryInterface(), HTMLRect_QueryInterface(), HTMLScreen_QueryInterface(), HTMLSelectionObject_QueryInterface(), HTMLStorage_QueryInterface(), HTMLStyle_QueryInterface(), HTMLStyleSheet_QueryInterface(), HTMLStyleSheetRulesCollection_QueryInterface(), HTMLStyleSheetsCollection_QueryInterface(), HTMLTitleElement_QI(), HTMLTxtRange_QueryInterface(), HTMLWindow2_QueryInterface(), HTMLWindowSP_QueryService(), HTMLXMLHttpRequest_QueryInterface(), HTMLXMLHttpRequestFactory_QueryInterface(), InPlaceFrame_QueryInterface(), InPlaceUIWindow_QueryInterface(), OmHistory_QueryInterface(), OmNavigator_QueryInterface(), SupportErrorInfo_InterfaceSupportsErrorInfo(), typeinfo_invoke(), and wrapper_QueryInterface().

◆ DEFINE_GUID() [1/22]

DEFINE_GUID ( CLSID_CBackgroundPropertyPage  ,
0x3050F232  ,
0x98B5  ,
0x11CF  ,
0xBB  ,
0x82  ,
0x00  ,
0xAA  ,
0x00  ,
0xBD  ,
0xCE  ,
0x0B   
)

◆ DEFINE_GUID() [2/22]

DEFINE_GUID ( CLSID_CCDAnchorPropertyPage  ,
0x3050F1FC  ,
0x98B5  ,
0x11CF  ,
0xBB  ,
0x82  ,
0x00  ,
0xAA  ,
0x00  ,
0xBD  ,
0xCE  ,
0x0B   
)

◆ DEFINE_GUID() [3/22]

DEFINE_GUID ( CLSID_CCDGenericPropertyPage  ,
0x3050F17F  ,
0x98B5  ,
0x11CF  ,
0xBB  ,
0x82  ,
0x00  ,
0xAA  ,
0x00  ,
0xBD  ,
0xCE  ,
0x0B   
)

◆ DEFINE_GUID() [4/22]

DEFINE_GUID ( CLSID_CDwnBindInfo  ,
0x3050F3C2  ,
0x98B5  ,
0x11CF  ,
0xBB  ,
0x82  ,
0x00  ,
0xAA  ,
0x00  ,
0xBD  ,
0xCE  ,
0x0B   
)

◆ DEFINE_GUID() [5/22]

DEFINE_GUID ( CLSID_CHiFiUses  ,
0x5AAF51B3  ,
0xB1F0  ,
0x11D1  ,
0xB6  ,
0xAB  ,
0x00  ,
0xA0  ,
0xC9  ,
0x08  ,
0x33  ,
0xE9   
)

◆ DEFINE_GUID() [6/22]

DEFINE_GUID ( CLSID_CHtmlComponentConstructor  ,
0x3050F4F8  ,
0x98B5  ,
0x11CF  ,
0xBB  ,
0x82  ,
0x00  ,
0xAA  ,
0x00  ,
0xBD  ,
0xCE  ,
0x0B   
)

◆ DEFINE_GUID() [7/22]

DEFINE_GUID ( CLSID_CInlineStylePropertyPage  ,
0x3050F296  ,
0x98B5  ,
0x11CF  ,
0xBB  ,
0x82  ,
0x00  ,
0xAA  ,
0x00  ,
0xBD  ,
0xCE  ,
0x0B   
)

◆ DEFINE_GUID() [8/22]

DEFINE_GUID ( CLSID_CPeerHandler  ,
0x5AAF51B2  ,
0xB1F0  ,
0x11D1  ,
0xB6  ,
0xAB  ,
0x00  ,
0xA0  ,
0xC9  ,
0x08  ,
0x33  ,
0xE9   
)

◆ DEFINE_GUID() [9/22]

DEFINE_GUID ( CLSID_CRecalcEngine  ,
0x3050F499  ,
0x98B5  ,
0x11CF  ,
0xBB  ,
0x82  ,
0x00  ,
0xAA  ,
0x00  ,
0xBD  ,
0xCE  ,
0x0B   
)

◆ DEFINE_GUID() [10/22]

DEFINE_GUID ( CLSID_CSvrOMUses  ,
0x3050F4F0  ,
0x98B5  ,
0x11CF  ,
0xBB  ,
0x82  ,
0x00  ,
0xAA  ,
0x00  ,
0xBD  ,
0xCE  ,
0x0B   
)

◆ DEFINE_GUID() [11/22]

DEFINE_GUID ( CLSID_CrSource  ,
0x65014010  ,
0x9F62  ,
0x11D1  ,
0xA6  ,
0x51  ,
0x00  ,
0x60  ,
0x08  ,
0x11  ,
0xD5  ,
0xCE   
)

◆ DEFINE_GUID() [12/22]

DEFINE_GUID ( CLSID_ExternalFrameworkSite  ,
0x3050F163  ,
0x98B5  ,
0x11CF  ,
0xBB  ,
0x82  ,
0x00  ,
0xAA  ,
0x00  ,
0xBD  ,
0xCE  ,
0x0B   
)

◆ DEFINE_GUID() [13/22]

DEFINE_GUID ( CLSID_HTADocument  ,
0x3050F5C8  ,
0x98B5  ,
0x11CF  ,
0xBB  ,
0x82  ,
0x00  ,
0xAA  ,
0x00  ,
0xBD  ,
0xCE  ,
0x0B   
)

◆ DEFINE_GUID() [14/22]

DEFINE_GUID ( CLSID_HTMLPluginDocument  ,
0x25336921  ,
0x03F9  ,
0x11CF  ,
0x8F  ,
0xD0  ,
0x00  ,
0xAA  ,
0x00  ,
0x68  ,
0x6F  ,
0x13   
)

◆ DEFINE_GUID() [15/22]

DEFINE_GUID ( CLSID_HTMLPopup  ,
0x3050F667  ,
0x98B5  ,
0x11CF  ,
0xBB  ,
0x82  ,
0x00  ,
0xAA  ,
0x00  ,
0xBD  ,
0xCE  ,
0x0B   
)

◆ DEFINE_GUID() [16/22]

DEFINE_GUID ( CLSID_HTMLPopupDoc  ,
0x3050F67D  ,
0x98B5  ,
0x11CF  ,
0xBB  ,
0x82  ,
0x00  ,
0xAA  ,
0x00  ,
0xBD  ,
0xCE  ,
0x0B   
)

◆ DEFINE_GUID() [17/22]

DEFINE_GUID ( CLSID_HTMLServerDoc  ,
0x3050F4E7  ,
0x98B5  ,
0x11CF  ,
0xBB  ,
0x82  ,
0x00  ,
0xAA  ,
0x00  ,
0xBD  ,
0xCE  ,
0x0B   
)

◆ DEFINE_GUID() [18/22]

DEFINE_GUID ( CLSID_IImageDecodeFilter  ,
0x607FD4E8  ,
0x0A03  ,
0x11D1  ,
0xAB  ,
0x1D  ,
0x00  ,
0xC0  ,
0x4F  ,
0xC9  ,
0xB3  ,
0x04   
)

◆ DEFINE_GUID() [19/22]

DEFINE_GUID ( CLSID_IImgCtx  ,
0x3050F3D6  ,
0x98B5  ,
0x11CF  ,
0xBB  ,
0x82  ,
0x00  ,
0xAA  ,
0x00  ,
0xBD  ,
0xCE  ,
0x0B   
)

◆ DEFINE_GUID() [20/22]

DEFINE_GUID ( CLSID_IntDitherer  ,
0x05F6FE1A  ,
0xECEF  ,
0x11D0  ,
0xAA  ,
0xE7  ,
0x00  ,
0xC0  ,
0x4F  ,
0xC9  ,
0xB3  ,
0x04   
)

◆ DEFINE_GUID() [21/22]

DEFINE_GUID ( CLSID_MHTMLDocument  ,
0x3050F3D9  ,
0x98B5  ,
0x11CF  ,
0xBB  ,
0x82  ,
0x00  ,
0xAA  ,
0x00  ,
0xBD  ,
0xCE  ,
0x0B   
)

◆ DEFINE_GUID() [22/22]

DEFINE_GUID ( CLSID_TridentAPI  ,
0x429AF92C  ,
0xA51F  ,
0x11D2  ,
0x86  ,
0x1E  ,
0x00  ,
0xC0  ,
0x4F  ,
0xA3  ,
0x5C  ,
0x89   
)

◆ DllCanUnloadNow()

HRESULT WINAPI DllCanUnloadNow ( void  )

Definition at line 330 of file main.c.

331 {
332  TRACE("()\n");
333  /* The cost of keeping this DLL in memory is small. */
334  return S_FALSE;
335 }
#define S_FALSE
Definition: winerror.h:2357
#define TRACE(s)
Definition: solgame.cpp:4

◆ DllGetClassObject()

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

Definition at line 298 of file main.c.

299 {
300  if(IsEqualGUID(&CLSID_HTMLDocument, rclsid)) {
301  TRACE("(CLSID_HTMLDocument %s %p)\n", debugstr_mshtml_guid(riid), ppv);
303  }else if(IsEqualGUID(&CLSID_AboutProtocol, rclsid)) {
304  TRACE("(CLSID_AboutProtocol %s %p)\n", debugstr_mshtml_guid(riid), ppv);
305  return ProtocolFactory_Create(rclsid, riid, ppv);
306  }else if(IsEqualGUID(&CLSID_JSProtocol, rclsid)) {
307  TRACE("(CLSID_JSProtocol %s %p)\n", debugstr_mshtml_guid(riid), ppv);
308  return ProtocolFactory_Create(rclsid, riid, ppv);
309  }else if(IsEqualGUID(&CLSID_MailtoProtocol, rclsid)) {
310  TRACE("(CLSID_MailtoProtocol %s %p)\n", debugstr_mshtml_guid(riid), ppv);
311  return ProtocolFactory_Create(rclsid, riid, ppv);
312  }else if(IsEqualGUID(&CLSID_ResProtocol, rclsid)) {
313  TRACE("(CLSID_ResProtocol %s %p)\n", debugstr_mshtml_guid(riid), ppv);
314  return ProtocolFactory_Create(rclsid, riid, ppv);
315  }else if(IsEqualGUID(&CLSID_SysimageProtocol, rclsid)) {
316  TRACE("(CLSID_SysimageProtocol %s %p)\n", debugstr_mshtml_guid(riid), ppv);
317  return ProtocolFactory_Create(rclsid, riid, ppv);
318  }else if(IsEqualGUID(&CLSID_HTMLLoadOptions, rclsid)) {
319  TRACE("(CLSID_HTMLLoadOptions %s %p)\n", debugstr_mshtml_guid(riid), ppv);
321  }
322 
323  FIXME("Unknown class %s\n", debugstr_guid(rclsid));
325 }
CLSID CLSID_AboutProtocol
REFIID riid
Definition: precomp.h:44
HRESULT HTMLDocument_Create(IUnknown *pUnkOuter, REFIID riid, void **ppvObject)
Definition: htmldoc.c:4821
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define CLASS_E_CLASSNOTAVAILABLE
Definition: winerror.h:2663
const char * debugstr_mshtml_guid(const GUID *iid)
Definition: main.c:542
#define FIXME(fmt,...)
Definition: debug.h:111
HRESULT ProtocolFactory_Create(REFCLSID, REFIID, void **) DECLSPEC_HIDDEN
Definition: protocol.c:1038
static HRESULT ClassFactory_Create(REFIID riid, void **ppv, CreateInstanceFunc fnCreateInstance)
Definition: main.c:278
#define debugstr_guid
Definition: kernel32.h:35
#define TRACE(s)
Definition: solgame.cpp:4
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: compobj.c:4112
HRESULT HTMLLoadOptions_Create(IUnknown *pUnkOuter, REFIID riid, void **ppv)
Definition: loadopts.c:173

◆ DllInstall()

HRESULT WINAPI DllInstall ( BOOL  bInstall,
LPCWSTR  cmdline 
)

Definition at line 361 of file main.c.

362 {
363  FIXME("stub %d %s: returning S_OK\n", bInstall, debugstr_w(cmdline));
364  return S_OK;
365 }
TCHAR * cmdline
Definition: stretchblt.cpp:32
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:111
#define S_OK
Definition: intsafe.h:52

◆ DllMain()

BOOL WINAPI DllMain ( HINSTANCE  hInstDLL,
DWORD  fdwReason,
LPVOID  reserved 
)

Definition at line 188 of file main.c.

189 {
190  switch(fdwReason) {
191  case DLL_PROCESS_ATTACH:
192  hInst = hInstDLL;
193  break;
194  case DLL_PROCESS_DETACH:
195  if (reserved) break;
196  process_detach();
197  break;
198  case DLL_THREAD_DETACH:
199  thread_detach();
200  break;
201  }
202  return TRUE;
203 }
#define TRUE
Definition: types.h:120
#define DLL_PROCESS_ATTACH
Definition: compat.h:131
#define DLL_THREAD_DETACH
Definition: compat.h:133
HINSTANCE hInst
Definition: main.c:29
r reserved
Definition: btrfs.c:2975
#define DLL_PROCESS_DETACH
Definition: compat.h:130
static void thread_detach(void)
Definition: main.c:73
static void process_detach(void)
Definition: main.c:94

◆ DllRegisterServer()

HRESULT WINAPI DllRegisterServer ( void  )

Definition at line 519 of file main.c.

520 {
521  HRESULT hres;
522 
524  if(SUCCEEDED(hres))
526  if(SUCCEEDED(hres))
527  load_gecko();
528 
529  return hres;
530 }
BOOL load_gecko(void) DECLSPEC_HIDDEN
Definition: nsembed.c:742
HRESULT __wine_register_resources(HMODULE module) DECLSPEC_HIDDEN
Definition: register.c:98
#define TRUE
Definition: types.h:120
HINSTANCE hInst
Definition: main.c:29
static HRESULT register_server(BOOL do_register)
Definition: main.c:419
if SUCCEEDED(hr)
HRESULT hres
Definition: protocol.c:465
LONG HRESULT
Definition: typedefs.h:79

◆ DllUnregisterServer()

HRESULT WINAPI DllUnregisterServer ( void  )

Definition at line 535 of file main.c.

536 {
539  return hres;
540 }
HINSTANCE hInst
Definition: main.c:29
#define FALSE
Definition: types.h:117
static HRESULT register_server(BOOL do_register)
Definition: main.c:419
if SUCCEEDED(hr)
HRESULT hres
Definition: protocol.c:465
LONG HRESULT
Definition: typedefs.h:79
HRESULT __wine_unregister_resources(HMODULE module) DECLSPEC_HIDDEN
Definition: register.c:110

◆ do_query_service()

HRESULT do_query_service ( IUnknown unk,
REFGUID  guid_service,
REFIID  riid,
void **  ppv 
)

Definition at line 148 of file main.c.

149 {
151  HRESULT hres;
152 
153  hres = IUnknown_QueryInterface(unk, &IID_IServiceProvider, (void**)&sp);
154  if(FAILED(hres))
155  return hres;
156 
157  hres = IServiceProvider_QueryService(sp, guid_service, riid, ppv);
158  IServiceProvider_Release(sp);
159  return hres;
160 }
REFIID riid
Definition: precomp.h:44
REFIID LPVOID * ppv
Definition: atlbase.h:39
HRESULT hres
Definition: protocol.c:465
LONG HRESULT
Definition: typedefs.h:79
static const WCHAR sp[]
Definition: suminfo.c:287

Referenced by hlink_frame_navigate(), HTMLWindow2_open(), navigate_new_window(), OleObject_SetClientSite(), and ServiceProvider_QueryService().

◆ free_strings()

static void free_strings ( void  )
static

Definition at line 87 of file main.c.

88 {
89  unsigned int i;
90  for(i = 0; i < sizeof(status_strings)/sizeof(*status_strings); i++)
92 }
static WCHAR * status_strings[IDS_STATUS_LAST-IDS_STATUS_FIRST+1]
Definition: main.c:42
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
static BOOL heap_free(void *mem)
Definition: appwiz.h:75

Referenced by process_detach().

◆ get_display_dc()

HDC get_display_dc ( void  )

Definition at line 173 of file main.c.

174 {
175  static const WCHAR displayW[] = {'D','I','S','P','L','A','Y',0};
176 
177  if(!display_dc) {
178  HDC hdc;
179 
182  DeleteObject(hdc);
183  }
184 
185  return display_dc;
186 }
static HDC
Definition: imagelist.c:92
BOOL WINAPI DeleteObject(_In_ HGDIOBJ)
static HDC display_dc
Definition: main.c:41
#define InterlockedCompareExchangePointer
Definition: interlocked.h:129
__wchar_t WCHAR
Definition: xmlstorage.h:180
static const WCHAR displayW[]
Definition: icm.c:30
HDC hdc
Definition: main.c:9
#define NULL
Definition: types.h:112
HDC WINAPI CreateICW(_In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_opt_ const DEVMODEW *)

Referenced by HTMLScreen_get_colorDepth(), HTMLScreen_get_height(), and HTMLScreen_get_width().

◆ get_shdoclc()

HINSTANCE get_shdoclc ( void  )

Definition at line 162 of file main.c.

163 {
164  static const WCHAR wszShdoclc[] =
165  {'s','h','d','o','c','l','c','.','d','l','l',0};
166 
167  if(shdoclc)
168  return shdoclc;
169 
170  return shdoclc = LoadLibraryExW(wszShdoclc, NULL, LOAD_LIBRARY_AS_DATAFILE);
171 }
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryExW(LPCWSTR lpLibFileName, HANDLE hFile, DWORD dwFlags)
Definition: loader.c:288
const char nsCycleCollectionTraversalCallback const char nsCycleCollectionTraversalCallback *static HINSTANCE shdoclc
Definition: main.c:40
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define LOAD_LIBRARY_AS_DATAFILE
Definition: winbase.h:339
#define NULL
Definition: types.h:112

Referenced by HTMLWindow2_alert(), HTMLWindow2_confirm(), prompt_dlgproc(), set_default_templates(), and show_context_menu().

◆ impl_from_IClassFactory()

static ClassFactory* impl_from_IClassFactory ( IClassFactory iface)
inlinestatic

Definition at line 215 of file main.c.

216 {
217  return CONTAINING_RECORD(iface, ClassFactory, IClassFactory_iface);
218 }
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
Definition: Messaging.c:560

Referenced by ClassFactory_AddRef(), ClassFactory_CreateInstance(), and ClassFactory_Release().

◆ nsrefcnt()

const CCObjCallback* nsrefcnt ( __cdecl ccref_incr)

◆ PrintHTML()

void WINAPI PrintHTML ( HWND  hwnd,
HINSTANCE  handle,
LPCSTR  cmdline,
INT  show 
)

Definition at line 380 of file main.c.

381 {
382  FIXME("(%p %p %s %x)\n", hwnd, handle, debugstr_a(cmdline), show);
383 }
TCHAR * cmdline
Definition: stretchblt.cpp:32
#define FIXME(fmt,...)
Definition: debug.h:111
#define debugstr_a
Definition: kernel32.h:31
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4022

◆ process_detach()

static void process_detach ( void  )
static

Definition at line 94 of file main.c.

95 {
96  close_gecko();
98 
99  if(shdoclc)
103  if(display_dc)
105  if(mlang)
106  IMultiLanguage2_Release(mlang);
107 
108  free_strings();
109 }
BOOL WINAPI DeleteObject(_In_ HGDIOBJ)
void close_gecko(void) DECLSPEC_HIDDEN
Definition: nsembed.c:1076
static HDC display_dc
Definition: main.c:41
const char nsCycleCollectionTraversalCallback const char nsCycleCollectionTraversalCallback *static HINSTANCE shdoclc
Definition: main.c:40
#define FreeLibrary(x)
Definition: compat.h:607
BOOL WINAPI TlsFree(IN DWORD Index)
Definition: thread.c:1166
static void free_strings(void)
Definition: main.c:87
void release_typelib(void)
Definition: apps.c:159
static IMultiLanguage2 * mlang
Definition: main.c:43
#define TLS_OUT_OF_INDEXES
Definition: winbase.h:546
DWORD mshtml_tls
Definition: main.c:31

Referenced by DllMain().

◆ register_server()

static HRESULT register_server ( BOOL  do_register)
static

Definition at line 419 of file main.c.

420 {
421  HRESULT hres;
422  HMODULE hAdvpack;
423  HRESULT (WINAPI *pRegInstall)(HMODULE hm, LPCSTR pszSection, const STRTABLEA* pstTable);
424  STRTABLEA strtable;
425  STRENTRYA pse[35];
426  static CLSID const *clsids[35];
427  unsigned int i = 0;
428 
429  static const WCHAR wszAdvpack[] = {'a','d','v','p','a','c','k','.','d','l','l',0};
430 
431  TRACE("(%x)\n", do_register);
432 
434  INF_SET_CLSID(CAnchorBrowsePropertyPage);
436  INF_SET_CLSID(CCDAnchorPropertyPage);
438  INF_SET_CLSID(CDocBrowsePropertyPage);
441  INF_SET_CLSID(CHtmlComponentConstructor);
443  INF_SET_CLSID(CInlineStylePropertyPage);
445  INF_SET_CLSID(CRecalcEngine);
446  INF_SET_CLSID(CSvrOMUses);
448  INF_SET_CLSID(ExternalFrameworkSite);
453  INF_SET_CLSID(HTMLPopup);
455  INF_SET_CLSID(HTMLServerDoc);
457  INF_SET_CLSID(IImageDecodeFilter);
460  INF_SET_CLSID(JSProtocol);
461  INF_SET_CLSID(MHTMLDocument);
464  INF_SET_CLSID(Scriptlet);
466  INF_SET_CLSID(TridentAPI);
467  INF_SET_ID(LIBID_MSHTML);
468 
469  for(i=0; i < sizeof(pse)/sizeof(pse[0]); i++) {
470  pse[i].pszValue = heap_alloc(39);
471  sprintf(pse[i].pszValue, "{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}",
472  clsids[i]->Data1, clsids[i]->Data2, clsids[i]->Data3, clsids[i]->Data4[0],
473  clsids[i]->Data4[1], clsids[i]->Data4[2], clsids[i]->Data4[3], clsids[i]->Data4[4],
474  clsids[i]->Data4[5], clsids[i]->Data4[6], clsids[i]->Data4[7]);
475  }
476 
477  strtable.cEntries = sizeof(pse)/sizeof(pse[0]);
478  strtable.pse = pse;
479 
480  hAdvpack = LoadLibraryW(wszAdvpack);
481  pRegInstall = (void *)GetProcAddress(hAdvpack, "RegInstall");
482 
483  hres = pRegInstall(hInst, do_register ? "RegisterDll" : "UnregisterDll", &strtable);
484 
485  FreeLibrary(hAdvpack);
486 
487  for(i=0; i < sizeof(pse)/sizeof(pse[0]); i++)
488  heap_free(pse[i].pszValue);
489 
490  if(FAILED(hres)) {
491  ERR("RegInstall failed: %08x\n", hres);
492  return hres;
493  }
494 
495  if(do_register) {
496  ITypeLib *typelib;
497 
498  static const WCHAR wszMSHTML[] = {'m','s','h','t','m','l','.','t','l','b',0};
499 
500  hres = LoadTypeLibEx(wszMSHTML, REGKIND_REGISTER, &typelib);
501  if(SUCCEEDED(hres))
502  ITypeLib_Release(typelib);
503  }else {
504  hres = UnRegisterTypeLib(&LIBID_MSHTML, 4, 0, LOCALE_SYSTEM_DEFAULT, SYS_WIN32);
505  }
506 
507  if(FAILED(hres))
508  ERR("typelib registration failed: %08x\n", hres);
509 
510  return hres;
511 }
#define HRESULT
Definition: msvc.h:7
DWORD cEntries
Definition: advpub.h:97
static ITypeLib * typelib
Definition: apps.c:108
#define INF_SET_CLSID(clsid)
Definition: main.c:417
static void * heap_alloc(size_t len)
Definition: appwiz.h:65
#define sprintf(buf, format,...)
Definition: sprintf.c:55
HINSTANCE hInst
Definition: main.c:29
LPSTR pszValue
Definition: advpub.h:83
if SUCCEEDED(hr)
#define LoadLibraryW(x)
Definition: compat.h:606
const char * LPCSTR
Definition: xmlstorage.h:183
STRENTRYA * pse
Definition: advpub.h:98
#define TRACE(s)
Definition: solgame.cpp:4
#define FreeLibrary(x)
Definition: compat.h:607
HRESULT hres
Definition: protocol.c:465
__wchar_t WCHAR
Definition: xmlstorage.h:180
LONG HRESULT
Definition: typedefs.h:79
#define WINAPI
Definition: msvc.h:6
#define LOCALE_SYSTEM_DEFAULT
HRESULT WINAPI UnRegisterTypeLib(REFGUID libid, WORD wVerMajor, WORD wVerMinor, LCID lcid, SYSKIND syskind)
Definition: typelib.c:882
HRESULT WINAPI LoadTypeLibEx(LPCOLESTR szFile, REGKIND regkind, ITypeLib **pptLib)
Definition: typelib.c:473
#define ERR(fmt,...)
Definition: debug.h:110
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 INF_SET_ID(id)
Definition: main.c:408
#define GetProcAddress(x, y)
Definition: compat.h:612
static BOOL heap_free(void *mem)
Definition: appwiz.h:75

Referenced by DllRegisterServer(), and DllUnregisterServer().

◆ RNIGetCompatibleVersion()

DWORD WINAPI RNIGetCompatibleVersion ( void  )

Definition at line 352 of file main.c.

353 {
354  TRACE("()\n");
355  return 0x20000;
356 }
#define TRACE(s)
Definition: solgame.cpp:4

◆ RunHTMLApplication()

HRESULT WINAPI RunHTMLApplication ( HINSTANCE  hinst,
HINSTANCE  hPrevInst,
LPSTR  szCmdLine,
INT  nCmdShow 
)

Definition at line 342 of file main.c.

344 {
345  FIXME("%p %p %s %d\n", hinst, hPrevInst, debugstr_a(szCmdLine), nCmdShow );
346  return 0;
347 }
#define FIXME(fmt,...)
Definition: debug.h:111
#define debugstr_a
Definition: kernel32.h:31
static HINSTANCE hinst
Definition: edit.c:551

◆ set_statustext()

void set_statustext ( HTMLDocumentObj doc,
INT  id,
LPCWSTR  arg 
)

Definition at line 111 of file main.c.

112 {
113  int index = id - IDS_STATUS_FIRST;
115  DWORD len;
116 
117  if(!doc->frame)
118  return;
119 
120  if(!p) {
121  len = 255;
122  p = heap_alloc(len * sizeof(WCHAR));
123  len = LoadStringW(hInst, id, p, len) + 1;
124  p = heap_realloc(p, len * sizeof(WCHAR));
126  heap_free(p);
128  }
129  }
130 
131  if(arg) {
132  WCHAR *buf;
133 
134  len = lstrlenW(p) + lstrlenW(arg) - 1;
135  buf = heap_alloc(len * sizeof(WCHAR));
136 
137  snprintfW(buf, len, p, arg);
138 
139  p = buf;
140  }
141 
142  IOleInPlaceFrame_SetStatusText(doc->frame, p);
143 
144  if(arg)
145  heap_free(p);
146 }
static WCHAR * status_strings[IDS_STATUS_LAST-IDS_STATUS_FIRST+1]
Definition: main.c:42
#define snprintfW
Definition: unicode.h:60
#define lstrlenW
Definition: compat.h:609
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
static void * heap_realloc(void *mem, size_t len)
Definition: appwiz.h:70
static void * heap_alloc(size_t len)
Definition: appwiz.h:65
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
HINSTANCE hInst
Definition: main.c:29
#define InterlockedCompareExchangePointer
Definition: interlocked.h:129
GLuint index
Definition: glext.h:6031
__wchar_t WCHAR
Definition: xmlstorage.h:180
unsigned long DWORD
Definition: ntddk_ex.h:95
IOleInPlaceFrame * frame
#define index(s, c)
Definition: various.h:29
GLenum GLsizei len
Definition: glext.h:6722
#define NULL
Definition: types.h:112
GLfloat GLfloat p
Definition: glext.h:8902
#define IDS_STATUS_FIRST
Definition: resource.h:23
static BOOL heap_free(void *mem)
Definition: appwiz.h:75

Referenced by handle_load(), and set_downloading_proc().

◆ ShowHTMLDialog()

HRESULT WINAPI ShowHTMLDialog ( HWND  hwndParent,
IMoniker pMk,
VARIANT pvarArgIn,
WCHAR pchOptions,
VARIANT pvarArgOut 
)

Definition at line 370 of file main.c.

372 {
373  FIXME("(%p %p %p %s %p)\n", hwndParent, pMk, pvarArgIn, debugstr_w(pchOptions), pvarArgOut);
374  return E_NOTIMPL;
375 }
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:111
static HWND hwndParent
Definition: cryptui.c:300
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ thread_detach()

static void thread_detach ( void  )
static

Definition at line 73 of file main.c.

74 {
76 
78  if(!thread_data)
79  return;
80 
81  if(thread_data->thread_hwnd)
82  DestroyWindow(thread_data->thread_hwnd);
83 
85 }
BOOL WINAPI DestroyWindow(_In_ HWND)
#define FALSE
Definition: types.h:117
thread_data_t * get_thread_data(BOOL) DECLSPEC_HIDDEN
Definition: task.c:352
static BOOL heap_free(void *mem)
Definition: appwiz.h:75

Referenced by DllMain().

◆ void()

Variable Documentation

◆ display_dc

HDC display_dc
static

Definition at line 41 of file main.c.

Referenced by get_display_dc(), getwinmetafilebits(), and process_detach().

◆ hInst

HINSTANCE hInst

Definition at line 30 of file main.c.

◆ HTMLClassFactoryVtbl

const IClassFactoryVtbl HTMLClassFactoryVtbl
static
Initial value:
= {
}
static ULONG WINAPI ClassFactory_AddRef(IClassFactory *iface)
Definition: main.c:233
static HRESULT WINAPI ClassFactory_CreateInstance(IClassFactory *iface, IUnknown *pUnkOuter, REFIID riid, void **ppvObject)
Definition: main.c:255
static HRESULT WINAPI ClassFactory_LockServer(IClassFactory *iface, BOOL dolock)
Definition: main.c:262
static HRESULT WINAPI ClassFactory_QueryInterface(IClassFactory *iface, REFGUID riid, void **ppvObject)
Definition: main.c:220
static ULONG WINAPI ClassFactory_Release(IClassFactory *iface)
Definition: main.c:241

Definition at line 270 of file main.c.

Referenced by ClassFactory_Create().

◆ mlang

IMultiLanguage2* mlang
static

◆ mshtml_tls

DWORD mshtml_tls = TLS_OUT_OF_INDEXES

Definition at line 31 of file main.c.

Referenced by get_thread_data(), and process_detach().

◆ nsrefcnt

◆ shdoclc

◆ status_strings

WCHAR* status_strings[IDS_STATUS_LAST-IDS_STATUS_FIRST+1]
static

Definition at line 42 of file main.c.

Referenced by free_strings(), and set_statustext().