ReactOS 0.4.17-dev-934-g091855f
mmcshext.cpp File Reference
#include <windows.h>
#include <atlbase.h>
#include <atlcom.h>
#include <strsafe.h>
#include <shlobj.h>
#include <shobjidl.h>
#include <shlwapi.h>
#include <initguid.h>
#include <msxml2.h>
Include dependency graph for mmcshext.cpp:

Go to the source code of this file.

Classes

class  CMscExtractIcon
 

Functions

 DEFINE_GUID (CLSID_MscExtractIcon, 0x7A80E4A8, 0x8005, 0x11D2, 0xBC, 0xF8, 0x00, 0xC0, 0x4F, 0x72, 0xC7, 0x17)
 
static HRESULT SetXPathSelectionLanguage (_In_ IXMLDOMDocument2 *pDoc)
 
static HRESULT GetAttributeValue (_In_ IXMLDOMNode *pNode, _In_ LPCWSTR pszName, _Out_ BSTR *pOut)
 
static HRESULT LoadXmlFromVariant (_In_ VARIANT *pVar, _Out_ IXMLDOMDocument2 **ppDoc)
 
STDAPI DllCanUnloadNow ()
 
STDAPI DllGetClassObject (_In_ REFCLSID rclsid, _In_ REFIID riid, _Out_ LPVOID *ppv)
 
STDAPI DllRegisterServer ()
 
STDAPI DllUnregisterServer ()
 
EXTERN_C BOOL WINAPI DllMain (_In_ HINSTANCE hInstance, _In_ DWORD dwReason, _In_ LPVOID lpReserved)
 

Variables

CComModule g_Module
 

Function Documentation

◆ DEFINE_GUID()

DEFINE_GUID ( CLSID_MscExtractIcon  ,
0x7A80E4A8  ,
0x8005  ,
0x11D2  ,
0xBC  ,
0xF8  ,
0x00  ,
0xC0  ,
0x4F  ,
0x72  ,
0xC7  ,
0x17   
)

◆ DllCanUnloadNow()

STDAPI DllCanUnloadNow ( void  )

Definition at line 200 of file mmcshext.cpp.

201{
202 return g_Module.DllCanUnloadNow();
203}
CComModule g_Module
Definition: mmcshext.cpp:20

◆ DllGetClassObject()

STDAPI DllGetClassObject ( _In_ REFCLSID  rclsid,
_In_ REFIID  riid,
_Out_ LPVOID *  ppv 
)

Definition at line 205 of file mmcshext.cpp.

206{
207 return g_Module.DllGetClassObject(rclsid, riid, ppv);
208}
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39

◆ DllMain()

EXTERN_C BOOL WINAPI DllMain ( _In_ HINSTANCE  hInstance,
_In_ DWORD  dwReason,
_In_ LPVOID  lpReserved 
)

Definition at line 220 of file mmcshext.cpp.

221{
222 switch (dwReason)
223 {
226 g_Module.Init(ObjectMap, hInstance, NULL);
227 break;
228 }
229 return TRUE;
230}
DWORD dwReason
Definition: misc.cpp:135
HINSTANCE hInstance
Definition: charmap.c:19
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define DLL_PROCESS_ATTACH
Definition: compat.h:131
BOOL WINAPI DisableThreadLibraryCalls(IN HMODULE hLibModule)
Definition: loader.c:85

◆ DllRegisterServer()

STDAPI DllRegisterServer ( void  )

Definition at line 210 of file mmcshext.cpp.

211{
212 return g_Module.DllRegisterServer(FALSE);
213}
#define FALSE
Definition: types.h:117

◆ DllUnregisterServer()

STDAPI DllUnregisterServer ( void  )

Definition at line 215 of file mmcshext.cpp.

216{
217 return g_Module.DllUnregisterServer(FALSE);
218}

◆ GetAttributeValue()

static HRESULT GetAttributeValue ( _In_ IXMLDOMNode *  pNode,
_In_ LPCWSTR  pszName,
_Out_ BSTR *  pOut 
)
static

Definition at line 124 of file mmcshext.cpp.

125{
126 CComPtr<IXMLDOMNamedNodeMap> pMap;
127 HRESULT hr;
128 *pOut = NULL;
129 if (SUCCEEDED(hr = pNode->get_attributes(&pMap)))
130 {
131 if (SUCCEEDED(hr = pMap->getNamedItem(const_cast<PWSTR>(pszName), &pNode)))
132 {
134 if (pNode)
135 {
136 hr = pNode->get_text(pOut);
137 if (SUCCEEDED(hr) && !*pOut)
139 pNode->Release();
140 }
141 }
142 }
143 return hr;
144}
HRESULT hr
Definition: delayimp.cpp:582
#define SUCCEEDED(hr)
Definition: intsafe.h:50
uint16_t * PWSTR
Definition: typedefs.h:56
static HRESULT HRESULT_FROM_WIN32(unsigned int x)
Definition: winerror.h:210
#define ERROR_NOT_FOUND
Definition: winerror.h:1014

Referenced by CMscExtractIcon::GetIconLocationFromMsc().

◆ LoadXmlFromVariant()

static HRESULT LoadXmlFromVariant ( _In_ VARIANT *  pVar,
_Out_ IXMLDOMDocument2 **  ppDoc 
)
static

Definition at line 146 of file mmcshext.cpp.

147{
148 VARIANT_BOOL succ = VARIANT_FALSE;
149 HRESULT hr = CoCreateInstance(CLSID_DOMDocument30, NULL, CLSCTX_INPROC_SERVER,
150 IID_IXMLDOMDocument, (void**)ppDoc);
151 if (FAILED(hr))
152 return hr;
153 else if (SUCCEEDED(hr = (*ppDoc)->load(*pVar, &succ)) && succ)
154 return hr;
155 (*ppDoc)->Release();
156 return SUCCEEDED(hr) ? E_FAIL : hr;
157}
#define E_FAIL
Definition: ddrawi.h:102
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, IUnknown *outer, DWORD cls_context, REFIID riid, void **obj)
Definition: combase.c:1685
short VARIANT_BOOL
Definition: compat.h:2290
ULONG Release()
#define FAILED(hr)
Definition: intsafe.h:51

Referenced by CMscExtractIcon::GetIconLocationFromMsc().

◆ SetXPathSelectionLanguage()

static HRESULT SetXPathSelectionLanguage ( _In_ IXMLDOMDocument2 *  pDoc)
static

Definition at line 116 of file mmcshext.cpp.

117{
118 VARIANT v;
119 V_VT(&v) = VT_BSTR;
120 V_BSTR(&v) = const_cast<PWSTR>(L"XPath"); // Use XPath, not the old XSLPattern
121 return pDoc->setProperty(const_cast<PWSTR>(L"SelectionLanguage"), v);
122}
@ VT_BSTR
Definition: compat.h:2303
#define L(x)
Definition: resources.c:13
const GLdouble * v
Definition: gl.h:2040
#define V_VT(A)
Definition: oleauto.h:211
#define V_BSTR(A)
Definition: oleauto.h:226

Referenced by CMscExtractIcon::GetIconLocationFromMsc().

Variable Documentation

◆ g_Module

CComModule g_Module