ReactOS 0.4.16-dev-2135-g2f5a67f
msxml_dispex.h File Reference
#include "dispex.h"
#include "wine/list.h"
Include dependency graph for msxml_dispex.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  dispex_static_data_vtbl_t
 
struct  dispex_static_data_t
 
struct  DispatchEx
 

Typedefs

typedef enum tid_t tid_t
 
typedef struct dispex_data_t dispex_data_t
 
typedef struct bsc_t bsc_t
 

Enumerations

enum  MSXML_VERSION {
  MSXML_DEFAULT = 0 , MSXML2 = 20 , MSXML26 = 26 , MSXML3 = 30 ,
  MSXML4 = 40 , MSXML6 = 60
}
 
enum  tid_t {
  LAST_tid , LAST_tid , Database_tid , Installer_tid ,
  Record_tid , Session_tid , StringList_tid , SummaryInfo_tid ,
  View_tid , LAST_tid , NULL_tid , IXMLDOMAttribute_tid ,
  IXMLDOMCDATASection_tid , IXMLDOMComment_tid , IXMLDOMDocument_tid , IXMLDOMDocument2_tid ,
  IXMLDOMDocument3_tid , IXMLDOMDocumentFragment_tid , IXMLDOMDocumentType_tid , IXMLDOMElement_tid ,
  IXMLDOMEntityReference_tid , IXMLDOMImplementation_tid , IXMLDOMNamedNodeMap_tid , IXMLDOMNode_tid ,
  IXMLDOMNodeList_tid , IXMLDOMParseError2_tid , IXMLDOMProcessingInstruction_tid , IXMLDOMSchemaCollection_tid ,
  IXMLDOMSchemaCollection2_tid , IXMLDOMSelection_tid , IXMLDOMText_tid , IXMLElement_tid ,
  IXMLDocument_tid , IXMLHTTPRequest_tid , IXSLProcessor_tid , IXSLTemplate_tid ,
  IVBSAXAttributes_tid , IVBSAXContentHandler_tid , IVBSAXDeclHandler_tid , IVBSAXDTDHandler_tid ,
  IVBSAXEntityResolver_tid , IVBSAXErrorHandler_tid , IVBSAXLexicalHandler_tid , IVBSAXLocator_tid ,
  IVBSAXXMLFilter_tid , IVBSAXXMLReader_tid , IMXAttributes_tid , IMXReaderControl_tid ,
  IMXWriter_tid , IVBMXNamespaceManager_tid , IServerXMLHTTPRequest_tid , LAST_tid ,
  NULL_tid , ITextDocument_tid , ITextRange_tid , ITextSelection_tid ,
  ITextFont_tid , ITextPara_tid , LAST_tid , NULL_tid ,
  IDictionary_tid , IDrive_tid , IDriveCollection_tid , IFile_tid ,
  IFileCollection_tid , IFileSystem3_tid , IFolder_tid , IFolderCollection_tid ,
  ITextStream_tid , LAST_tid , NULL_tid , IWshCollection_tid ,
  IWshEnvironment_tid , IWshExec_tid , IWshShell3_tid , IWshShortcut_tid ,
  LAST_tid
}
 

Functions

HRESULT get_typeinfo (tid_t tid, ITypeInfo **typeinfo)
 
void release_typelib (void)
 
void init_dispex (DispatchEx *, IUnknown *, dispex_static_data_t *)
 
void release_dispex (DispatchEx *)
 
BOOL dispex_query_interface (DispatchEx *, REFIID, void **)
 
const IIDget_riid_from_tid (enum tid_t tid)
 
static HRESULT return_bstr (const WCHAR *value, BSTR *p)
 
static HRESULT return_bstrn (const WCHAR *value, int len, BSTR *p)
 
HRESULT dom_document_create (MSXML_VERSION class_version, void **document)
 
HRESULT create_moniker_from_url (LPCWSTR, IMoniker **)
 
HRESULT create_uri (IUri *base, const WCHAR *, IUri **)
 
HRESULT bind_url (IMoniker *, HRESULT(*onDataAvailable)(void *, char *, DWORD), void *, bsc_t **)
 
HRESULT detach_bsc (bsc_t *)
 
IUriget_base_uri (IUnknown *site)
 

Typedef Documentation

◆ bsc_t

typedef struct bsc_t bsc_t

Definition at line 148 of file msxml_dispex.h.

◆ dispex_data_t

Definition at line 85 of file msxml_dispex.h.

◆ tid_t

typedef enum tid_t tid_t

Enumeration Type Documentation

◆ MSXML_VERSION

Enumerator
MSXML_DEFAULT 
MSXML2 
MSXML26 
MSXML3 
MSXML4 
MSXML6 

Definition at line 26 of file msxml_dispex.h.

27{
28 MSXML_DEFAULT = 0,
29 MSXML2 = 20,
30 MSXML26 = 26,
31 MSXML3 = 30,
32 MSXML4 = 40,
33 MSXML6 = 60
MSXML_VERSION
Definition: msxml_dispex.h:27
@ MSXML_DEFAULT
Definition: msxml_dispex.h:28
@ MSXML4
Definition: msxml_dispex.h:32
@ MSXML6
Definition: msxml_dispex.h:33
@ MSXML26
Definition: msxml_dispex.h:30
@ MSXML3
Definition: msxml_dispex.h:31

◆ tid_t

Enumerator
LAST_tid 
LAST_tid 
Database_tid 
Installer_tid 
Record_tid 
Session_tid 
StringList_tid 
SummaryInfo_tid 
View_tid 
LAST_tid 
NULL_tid 
IXMLDOMAttribute_tid 
IXMLDOMCDATASection_tid 
IXMLDOMComment_tid 
IXMLDOMDocument_tid 
IXMLDOMDocument2_tid 
IXMLDOMDocument3_tid 
IXMLDOMDocumentFragment_tid 
IXMLDOMDocumentType_tid 
IXMLDOMElement_tid 
IXMLDOMEntityReference_tid 
IXMLDOMImplementation_tid 
IXMLDOMNamedNodeMap_tid 
IXMLDOMNode_tid 
IXMLDOMNodeList_tid 
IXMLDOMParseError2_tid 
IXMLDOMProcessingInstruction_tid 
IXMLDOMSchemaCollection_tid 
IXMLDOMSchemaCollection2_tid 
IXMLDOMSelection_tid 
IXMLDOMText_tid 
IXMLElement_tid 
IXMLDocument_tid 
IXMLHTTPRequest_tid 
IXSLProcessor_tid 
IXSLTemplate_tid 
IVBSAXAttributes_tid 
IVBSAXContentHandler_tid 
IVBSAXDeclHandler_tid 
IVBSAXDTDHandler_tid 
IVBSAXEntityResolver_tid 
IVBSAXErrorHandler_tid 
IVBSAXLexicalHandler_tid 
IVBSAXLocator_tid 
IVBSAXXMLFilter_tid 
IVBSAXXMLReader_tid 
IMXAttributes_tid 
IMXReaderControl_tid 
IMXWriter_tid 
IVBMXNamespaceManager_tid 
IServerXMLHTTPRequest_tid 
LAST_tid 
NULL_tid 
ITextDocument_tid 
ITextRange_tid 
ITextSelection_tid 
ITextFont_tid 
ITextPara_tid 
LAST_tid 
NULL_tid 
IDictionary_tid 
IDrive_tid 
IDriveCollection_tid 
IFile_tid 
IFileCollection_tid 
IFileSystem3_tid 
IFolder_tid 
IFolderCollection_tid 
ITextStream_tid 
LAST_tid 
NULL_tid 
IWshCollection_tid 
IWshEnvironment_tid 
IWshExec_tid 
IWshShell3_tid 
IWshShortcut_tid 
LAST_tid 

Definition at line 36 of file msxml_dispex.h.

37{
80} tid_t;
tid_t
Definition: msxml_dispex.h:37
@ IVBSAXDTDHandler_tid
Definition: msxml_dispex.h:67
@ IXMLDOMNodeList_tid
Definition: msxml_dispex.h:52
@ IXMLDOMDocumentFragment_tid
Definition: msxml_dispex.h:45
@ IXMLDOMElement_tid
Definition: msxml_dispex.h:47
@ IMXReaderControl_tid
Definition: msxml_dispex.h:75
@ IXMLDOMEntityReference_tid
Definition: msxml_dispex.h:48
@ IXMLDocument_tid
Definition: msxml_dispex.h:60
@ IXMLDOMSchemaCollection2_tid
Definition: msxml_dispex.h:56
@ IVBSAXContentHandler_tid
Definition: msxml_dispex.h:65
@ IVBSAXLocator_tid
Definition: msxml_dispex.h:71
@ IXMLElement_tid
Definition: msxml_dispex.h:59
@ IXMLDOMNamedNodeMap_tid
Definition: msxml_dispex.h:50
@ IXMLDOMNode_tid
Definition: msxml_dispex.h:51
@ IXMLDOMText_tid
Definition: msxml_dispex.h:58
@ LAST_tid
Definition: msxml_dispex.h:79
@ IXMLDOMCDATASection_tid
Definition: msxml_dispex.h:40
@ IXMLDOMDocument3_tid
Definition: msxml_dispex.h:44
@ IMXWriter_tid
Definition: msxml_dispex.h:76
@ IServerXMLHTTPRequest_tid
Definition: msxml_dispex.h:78
@ IXMLDOMProcessingInstruction_tid
Definition: msxml_dispex.h:54
@ IVBSAXEntityResolver_tid
Definition: msxml_dispex.h:68
@ IVBSAXErrorHandler_tid
Definition: msxml_dispex.h:69
@ IXMLHTTPRequest_tid
Definition: msxml_dispex.h:61
@ IVBSAXXMLFilter_tid
Definition: msxml_dispex.h:72
@ IXMLDOMImplementation_tid
Definition: msxml_dispex.h:49
@ IVBSAXXMLReader_tid
Definition: msxml_dispex.h:73
@ IVBMXNamespaceManager_tid
Definition: msxml_dispex.h:77
@ IXMLDOMDocument2_tid
Definition: msxml_dispex.h:43
@ NULL_tid
Definition: msxml_dispex.h:38
@ IXMLDOMSchemaCollection_tid
Definition: msxml_dispex.h:55
@ IXMLDOMDocument_tid
Definition: msxml_dispex.h:42
@ IMXAttributes_tid
Definition: msxml_dispex.h:74
@ IXMLDOMDocumentType_tid
Definition: msxml_dispex.h:46
@ IXSLProcessor_tid
Definition: msxml_dispex.h:62
@ IVBSAXDeclHandler_tid
Definition: msxml_dispex.h:66
@ IXMLDOMAttribute_tid
Definition: msxml_dispex.h:39
@ IXSLTemplate_tid
Definition: msxml_dispex.h:63
@ IXMLDOMSelection_tid
Definition: msxml_dispex.h:57
@ IXMLDOMParseError2_tid
Definition: msxml_dispex.h:53
@ IXMLDOMComment_tid
Definition: msxml_dispex.h:41
@ IVBSAXLexicalHandler_tid
Definition: msxml_dispex.h:70
@ IVBSAXAttributes_tid
Definition: msxml_dispex.h:64

Function Documentation

◆ bind_url()

HRESULT bind_url ( IMoniker mon,
HRESULT(*)(void *, char *, DWORD onDataAvailable,
void obj,
bsc_t **  ret 
)

Definition at line 299 of file bsc.c.

301{
302 bsc_t *bsc;
303 IBindCtx *pbc;
304 HRESULT hr;
305
306 TRACE("%p\n", mon);
307
308 hr = CreateBindCtx(0, &pbc);
309 if(FAILED(hr))
310 return hr;
311
312 bsc = malloc(sizeof(bsc_t));
313
315 bsc->ref = 1;
316 bsc->obj = obj;
317 bsc->onDataAvailable = onDataAvailable;
318 bsc->binding = NULL;
319 bsc->memstream = NULL;
320 bsc->hres = S_OK;
321
323 if(SUCCEEDED(hr))
324 {
326 hr = IMoniker_BindToStorage(mon, pbc, NULL, &IID_IStream, (LPVOID*)&stream);
327 if(stream)
328 IStream_Release(stream);
329 IBindCtx_Release(pbc);
330 }
331
332 if(FAILED(hr))
333 {
334 IBindStatusCallback_Release(&bsc->IBindStatusCallback_iface);
335 bsc = NULL;
336 }
337
338 *ret = bsc;
339 return hr;
340}
static const struct IBindStatusCallbackVtbl bsc_vtbl
Definition: bsc.c:226
#define malloc
Definition: debug_ros.c:4
#define NULL
Definition: types.h:112
return ret
Definition: mutex.c:146
#define S_OK
Definition: intsafe.h:52
#define SUCCEEDED(hr)
Definition: intsafe.h:50
#define FAILED(hr)
Definition: intsafe.h:51
HRESULT WINAPI CreateBindCtx(DWORD reserved, LPBC *ppbc)
Definition: bindctx.c:556
HRESULT hr
Definition: shlfolder.c:183
#define TRACE(s)
Definition: solgame.cpp:4
Definition: bsc.c:39
Definition: xmldoc.c:231
IBindStatusCallback IBindStatusCallback_iface
Definition: xmldoc.c:232
Definition: parse.h:23
HRESULT WINAPI RegisterBindStatusCallback(IBindCtx *pbc, IBindStatusCallback *pbsc, IBindStatusCallback **ppbscPrevious, DWORD dwReserved)
Definition: bindctx.c:615

Referenced by domdoc_load_moniker(), internal_parseURL(), and xslt_doc_default_loader().

◆ create_moniker_from_url()

HRESULT create_moniker_from_url ( LPCWSTR  url,
IMoniker **  mon 
)

Definition at line 284 of file bsc.c.

285{
286 HRESULT hr;
287 IUri *uri;
288
289 TRACE("%s\n", debugstr_w(url));
290
291 if (FAILED(hr = create_uri(NULL, url, &uri)))
292 return hr;
293
294 hr = CreateURLMonikerEx2(NULL, uri, mon, 0);
295 IUri_Release(uri);
296 return hr;
297}
HRESULT create_uri(IUri *base, const WCHAR *url, IUri **uri)
Definition: bsc.c:241
#define debugstr_w
Definition: kernel32.h:32
static const WCHAR url[]
Definition: encode.c:1384
const char * uri
Definition: sec_mgr.c:1588
HRESULT WINAPI CreateURLMonikerEx2(IMoniker *pmkContext, IUri *pUri, IMoniker **ppmk, DWORD dwFlags)
Definition: umon.c:668

Referenced by internal_parseURL().

◆ create_uri()

HRESULT create_uri ( IUri base,
const WCHAR url,
IUri **  uri 
)

Definition at line 241 of file bsc.c.

242{
244 HRESULT hr;
245
246 TRACE("%s\n", debugstr_w(url));
247
248 if (!PathIsURLW(url))
249 {
250 WCHAR fullpath[MAX_PATH];
251 DWORD needed = ARRAY_SIZE(fileUrl);
252
253 lstrcpynW(fileUrl, url, ARRAY_SIZE(fileUrl));
255
256 if (!PathSearchAndQualifyW(fileUrl, fullpath, ARRAY_SIZE(fullpath)))
257 {
258 WARN("can't find path\n");
259 return E_FAIL;
260 }
261
262 if (FAILED(UrlApplySchemeW(fullpath, fileUrl, &needed, URL_APPLY_GUESSSCHEME | URL_APPLY_GUESSFILE |
264 {
265 ERR("Failed to apply url scheme.\n");
266 return E_FAIL;
267 }
268 url = fileUrl;
269 }
270
271 hr = CreateUri(url, Uri_CREATE_ALLOW_RELATIVE | Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME, 0, uri);
272 if (hr == S_OK && base)
273 {
274 IUri *rebased_uri;
275
276 hr = CoInternetCombineIUri(base, *uri, 0, &rebased_uri, 0);
277 IUri_Release(*uri);
278 *uri = rebased_uri;
279 }
280
281 return hr;
282}
#define ARRAY_SIZE(A)
Definition: main.h:20
#define WARN(fmt,...)
Definition: precomp.h:61
#define ERR(fmt,...)
Definition: precomp.h:57
#define E_FAIL
Definition: ddrawi.h:102
#define MAX_PATH
Definition: compat.h:34
#define lstrcpynW
Definition: compat.h:738
HRESULT WINAPI UrlUnescapeW(WCHAR *url, WCHAR *unescaped, DWORD *unescaped_len, DWORD flags)
Definition: path.c:2936
BOOL WINAPI PathSearchAndQualifyW(const WCHAR *path, WCHAR *buffer, UINT length)
Definition: path.c:2348
HRESULT WINAPI UrlApplySchemeW(const WCHAR *url, WCHAR *out, DWORD *length, DWORD flags)
Definition: path.c:4384
BOOL WINAPI PathIsURLW(const WCHAR *path)
Definition: path.c:3238
HRESULT WINAPI CoInternetCombineIUri(IUri *pBaseUri, IUri *pRelativeUri, DWORD dwCombineFlags, IUri **ppCombinedUri, DWORD_PTR dwReserved)
Definition: uri.c:6716
HRESULT WINAPI CreateUri(LPCWSTR pwzURI, DWORD dwFlags, DWORD_PTR dwReserved, IUri **ppURI)
Definition: uri.c:5700
#define INTERNET_MAX_URL_LENGTH
Definition: session.c:1418
unsigned long DWORD
Definition: ntddk_ex.h:95
#define URL_APPLY_GUESSSCHEME
Definition: shlwapi.h:518
#define URL_APPLY_DEFAULT
Definition: shlwapi.h:517
#define URL_UNESCAPE_INPLACE
Definition: shlwapi.h:525
#define URL_APPLY_GUESSFILE
Definition: shlwapi.h:519
__wchar_t WCHAR
Definition: xmlstorage.h:180

Referenced by create_moniker_from_url().

◆ detach_bsc()

HRESULT detach_bsc ( bsc_t bsc)

Definition at line 342 of file bsc.c.

343{
345
346 if(bsc->binding)
347 IBinding_Abort(bsc->binding);
348
349 bsc->obj = NULL;
350 hres = bsc->hres;
351 IBindStatusCallback_Release(&bsc->IBindStatusCallback_iface);
352
353 return hres;
354}
HRESULT hres
Definition: protocol.c:465

Referenced by domdoc_load_moniker(), internal_parseURL(), and xslt_doc_default_loader().

◆ dispex_query_interface()

BOOL dispex_query_interface ( DispatchEx This,
REFIID  riid,
void **  ppv 
)

Definition at line 1656 of file dispex.c.

1657{
1659 *ppv = &This->IDispatchEx_iface;
1660 else if(IsEqualGUID(&IID_IDispatchEx, riid))
1661 *ppv = &This->IDispatchEx_iface;
1662 else if(IsEqualGUID(&IID_IDispatchJS, riid))
1663 *ppv = NULL;
1664 else if(IsEqualGUID(&IID_UndocumentedScriptIface, riid))
1665 *ppv = NULL;
1666 else
1667 return FALSE;
1668
1669 if(*ppv)
1670 IUnknown_AddRef((IUnknown*)*ppv);
1671 return TRUE;
1672}
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
const GUID IID_IDispatch
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147

Referenced by CustomDoc_QueryInterface(), domimpl_QueryInterface(), domselection_QueryInterface(), Function_QueryInterface(), HTMLAttributeCollection_QueryInterface(), HTMLCurrentStyle_QueryInterface(), HTMLDOMAttribute_QueryInterface(), HTMLDOMChildrenCollection_QueryInterface(), HTMLDOMImplementation_QueryInterface(), HTMLDOMNode_QI(), HTMLElementCollection_QueryInterface(), HTMLEventObj_QueryInterface(), HTMLFiltersCollection_QueryInterface(), HTMLImageElementFactory_QueryInterface(), HTMLLocation_QueryInterface(), HTMLMimeTypesCollection_QueryInterface(), HTMLOptionElementFactory_QueryInterface(), HTMLPluginsCollection_QueryInterface(), HTMLRect_QueryInterface(), HTMLScreen_QueryInterface(), HTMLSelectionObject_QueryInterface(), HTMLStorage_QueryInterface(), HTMLStyle_QueryInterface(), HTMLStyleSheet_QueryInterface(), HTMLStyleSheetRulesCollection_QueryInterface(), HTMLStyleSheetsCollection_QueryInterface(), HTMLTxtRange_QueryInterface(), HTMLWindow2_QueryInterface(), HTMLXMLHttpRequest_QueryInterface(), HTMLXMLHttpRequestFactory_QueryInterface(), MXAttributes_QueryInterface(), mxwriter_QueryInterface(), node_query_interface(), OmHistory_QueryInterface(), OmNavigator_QueryInterface(), parseError_QueryInterface(), saxxmlreader_QueryInterface(), schema_cache_QueryInterface(), vbnamespacemanager_QueryInterface(), xmlnodelist_QueryInterface(), xmlnodemap_QueryInterface(), xslprocessor_QueryInterface(), and xsltemplate_QueryInterface().

◆ dom_document_create()

HRESULT dom_document_create ( MSXML_VERSION  class_version,
void **  document 
)

Definition at line 3788 of file domdoc.c.

3789{
3790 xmlDocPtr xmldoc;
3791 HRESULT hr;
3792
3793 TRACE("(%d, %p)\n", version, ppObj);
3794
3795 xmldoc = xmlNewDoc(NULL);
3796 if(!xmldoc)
3797 return E_OUTOFMEMORY;
3798
3800
3802 if(FAILED(hr))
3803 {
3805 free(xmldoc->_private);
3806 xmlFreeDoc(xmldoc);
3807 return hr;
3808 }
3809
3810 return hr;
3811}
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define free
Definition: debug_ros.c:5
static const WCHAR version[]
Definition: asmname.c:66
static domdoc_properties * properties_from_xmlDocPtr(xmlDocPtr doc)
Definition: domdoc.c:220
static void properties_release(domdoc_properties *properties)
Definition: domdoc.c:351
void xmldoc_init(xmlDocPtr doc, MSXML_VERSION version)
Definition: domdoc.c:606
HRESULT get_domdoc_from_xmldoc(xmlDocPtr xmldoc, IXMLDOMDocument3 **document)
Definition: domdoc.c:3749
struct _xmldoc xmldoc
Definition: xmldoc.c:49

Referenced by cache_entry_from_url(), DllGetClassObject(), handle_xml_load(), httprequest_get_responseXML(), schema_cache_add(), and xslprocessor_put_input().

◆ get_base_uri()

IUri * get_base_uri ( IUnknown site)

Definition at line 1629 of file httprequest.c.

1630{
1631 IServiceProvider *provider;
1632 IHTMLDocument2 *doc;
1633 IUri *uri;
1634 BSTR url;
1635 HRESULT hr;
1636
1637 hr = IUnknown_QueryInterface(site, &IID_IServiceProvider, (void**)&provider);
1638 if(FAILED(hr))
1639 return NULL;
1640
1641 hr = IServiceProvider_QueryService(provider, &SID_SContainerDispatch, &IID_IHTMLDocument2, (void**)&doc);
1642 if(FAILED(hr))
1643 hr = IServiceProvider_QueryService(provider, &SID_SInternetHostSecurityManager, &IID_IHTMLDocument2, (void**)&doc);
1644 IServiceProvider_Release(provider);
1645 if(FAILED(hr))
1646 return NULL;
1647
1648 hr = IHTMLDocument2_get_URL(doc, &url);
1649 IHTMLDocument2_Release(doc);
1650 if(FAILED(hr) || !url || !*url)
1651 return NULL;
1652
1653 TRACE("host url %s\n", debugstr_w(url));
1654
1655 hr = CreateUri(url, 0, 0, &uri);
1657 if(FAILED(hr))
1658 return NULL;
1659
1660 return uri;
1661}
OLECHAR * BSTR
Definition: compat.h:2293
static IActiveScriptSite * site
Definition: script.c:149
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
Definition: oleaut.c:271

Referenced by domdoc_ObjectWithSite_SetSite(), and httprequest_ObjectWithSite_SetSite().

◆ get_riid_from_tid()

const IID * get_riid_from_tid ( enum tid_t  tid)

Definition at line 130 of file dispex.c.

131{
132 return tid_ids[tid].iid;
133}
static TfClientId tid
static REFIID tid_ids[]
Definition: dispex.c:94

Referenced by DispatchEx_InvokeEx(), and get_typeinfo().

◆ get_typeinfo()

HRESULT get_typeinfo ( tid_t  tid,
ITypeInfo **  typeinfo 
)

Definition at line 61 of file ieframe_main.c.

62{
64
65 if(!typelib)
67 if(!typelib)
68 return hres;
69
70 if(!typeinfos[tid]) {
71 ITypeInfo *ti;
72
73 hres = ITypeLib_GetTypeInfoOfGuid(typelib, tid_ids[tid], &ti);
74 if(FAILED(hres)) {
75 ERR("GetTypeInfoOfGuid(%s) failed: %08x\n", debugstr_guid(tid_ids[tid]), hres);
76 return hres;
77 }
78
80 ITypeInfo_Release(ti);
81 }
82
84 return S_OK;
85}
static HRESULT load_typelib(void)
Definition: ieframe_main.c:45
static REFIID tid_ids[]
Definition: ieframe_main.c:37
static ITypeInfo * typeinfos[LAST_tid]
Definition: ieframe_main.c:35
#define InterlockedCompareExchangePointer
Definition: interlocked.h:144
#define debugstr_guid
Definition: kernel32.h:35

◆ init_dispex()

void init_dispex ( DispatchEx dispex,
IUnknown outer,
dispex_static_data_t data 
)

Definition at line 1737 of file dispex.c.

1738{
1739 dispex->IDispatchEx_iface.lpVtbl = &DispatchExVtbl;
1740 dispex->outer = outer;
1741 dispex->data = data;
1742 dispex->dynamic_data = NULL;
1743}
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
static IDispatchExVtbl DispatchExVtbl
Definition: dispex.c:890
dispex_static_data_t * data
IDispatchEx IDispatchEx_iface
dispex_dynamic_data_t * dynamic_data
IUnknown * outer

◆ release_dispex()

void release_dispex ( DispatchEx This)

Definition at line 1706 of file dispex.c.

1707{
1708 dynamic_prop_t *prop;
1709
1710 if(!This->dynamic_data)
1711 return;
1712
1713 for(prop = This->dynamic_data->props; prop < This->dynamic_data->props + This->dynamic_data->prop_cnt; prop++) {
1714 VariantClear(&prop->var);
1715 heap_free(prop->name);
1716 }
1717
1718 heap_free(This->dynamic_data->props);
1719
1720 if(This->dynamic_data->func_disps) {
1721 func_obj_entry_t *iter;
1722
1723 for(iter = This->dynamic_data->func_disps; iter < This->dynamic_data->func_disps+This->data->data->func_disp_cnt; iter++) {
1724 if(iter->func_obj) {
1725 iter->func_obj->obj = NULL;
1726 IDispatchEx_Release(&iter->func_obj->dispex.IDispatchEx_iface);
1727 }
1728 VariantClear(&iter->val);
1729 }
1730
1731 heap_free(This->dynamic_data->func_disps);
1732 }
1733
1734 heap_free(This->dynamic_data);
1735}
static BOOL heap_free(void *mem)
Definition: appwiz.h:76
LPWSTR name
Definition: dispex.c:59
VARIANT var
Definition: dispex.c:58
DispatchEx dispex
Definition: dispex.c:66
DispatchEx * obj
Definition: dispex.c:69
Definition: dispex.c:73
VARIANT val
Definition: dispex.c:75
func_disp_t * func_obj
Definition: dispex.c:74
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
Definition: variant.c:648

Referenced by CustomDoc_Release(), Function_Release(), HTMLCurrentStyle_Release(), HTMLDOMAttribute_Release(), HTMLDOMImplementation_Release(), HTMLDOMNode_delete_cycle_collectable(), HTMLElementCollection_Release(), HTMLEventObj_Release(), HTMLLocation_Release(), HTMLMimeTypesCollection_Release(), HTMLOptionElementFactory_Release(), HTMLPluginsCollection_Release(), HTMLScreen_Release(), HTMLSelectionObject_Release(), HTMLStorage_Release(), HTMLStyle_Release(), HTMLStyleSheet_Release(), HTMLStyleSheetRulesCollection_Release(), HTMLStyleSheetsCollection_Release(), HTMLTxtRange_Release(), HTMLXMLHttpRequest_Release(), HTMLXMLHttpRequestFactory_Release(), OmHistory_Release(), OmNavigator_Release(), and release_inner_window().

◆ release_typelib()

void release_typelib ( void  )

Definition at line 159 of file apps.c.

160{
161 unsigned i;
162
163 for (i = 0; i < ARRAY_SIZE(typeinfo); i++)
164 if (typeinfo[i])
165 ITypeInfo_Release(typeinfo[i]);
166
167 if (typelib)
168 ITypeLib_Release(typelib);
169}
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

◆ return_bstr()

◆ return_bstrn()