ReactOS 0.4.17-dev-1183-g3b30a2a
CSnapinCacheEntry Class Reference

#include <CSnapinCacheEntry.h>

Collaboration diagram for CSnapinCacheEntry:

Public Member Functions

 CSnapinCacheEntry (const CAtlString &guidString, const CAtlString &aboutGuidString, const CAtlString &name, HIMAGELIST hImageList)
 
 ~CSnapinCacheEntry ()
 
const CAtlString & GuidString () const
 
const CAtlString & AboutGuidString () const
 
const CAtlString & Name () const
 
const CAtlString & Provider () const
 
const CAtlString & Description () const
 
const CAtlString & Version () const
 
HICON Icon ()
 
int NormalImageIndex ()
 
int OpenImageIndex ()
 

Static Public Member Functions

static CSnapinCacheEntry * Create (CRegKey &SnapinsKey, PWSTR guidString, HIMAGELIST hImageList)
 

Private Attributes

CAtlString m_GuidString
 
CAtlString m_AboutGuidString
 
CAtlString m_Name
 
CAtlString m_Provider
 
CAtlString m_Description
 
CAtlString m_Version
 
GUID m_Guid
 
GUID m_AboutGuid
 
int m_ImageNormal
 
int m_ImageOpen
 
HICON m_hIcon
 
BOOL m_Loaded
 

Detailed Description

Definition at line 10 of file CSnapinCacheEntry.h.

Constructor & Destructor Documentation

◆ CSnapinCacheEntry()

CSnapinCacheEntry::CSnapinCacheEntry ( const CAtlString &  guidString,
const CAtlString &  aboutGuidString,
const CAtlString &  name,
HIMAGELIST  hImageList 
)

Definition at line 15 of file CSnapinCacheEntry.cpp.

16 :m_GuidString(guidString), m_AboutGuidString(aboutGuidString), m_Name(name), m_Loaded(FALSE)
17{
20
21 CComPtr<ISnapinAbout> pSnapinAbout;
22 HRESULT hr = CoCreateInstance(m_AboutGuid, NULL, CLSCTX_INPROC, IID_PPV_ARG(ISnapinAbout, &pSnapinAbout));
23 DPRINT("CoCreateInstance %lx\n", hr);
24 if (SUCCEEDED(hr))
25 {
26 LPOLESTR Str;
27
28 hr = pSnapinAbout->GetProvider(&Str);
29 DPRINT("GetProvider %lx\n", hr);
30 if (SUCCEEDED(hr))
31 {
34 }
35
36 hr = pSnapinAbout->GetSnapinDescription(&Str);
37 DPRINT("GetDescription %lx\n", hr);
38 if (SUCCEEDED(hr))
39 {
42 }
43
44 hr = pSnapinAbout->GetSnapinVersion(&Str);
45 DPRINT("GetVersion %lx\n", hr);
46 if (SUCCEEDED(hr))
47 {
48 m_Version = Str;
50 }
51
52 HBITMAP hSmallImage, hSmallImageOpen, hLargeImage;
53 COLORREF colorMask;
54
55 hr = pSnapinAbout->GetStaticFolderImage(&hSmallImage,
56 &hSmallImageOpen,
57 &hLargeImage,
58 &colorMask);
59 if (SUCCEEDED(hr))
60 {
62 hSmallImage,
63 colorMask);
64
66 hSmallImageOpen,
67 colorMask);
68
69 DeleteObject(hSmallImage);
70 DeleteObject(hSmallImageOpen);
71 DeleteObject(hLargeImage);
72 }
73
74 hr = pSnapinAbout->GetSnapinImage(&m_hIcon);
75 }
76}
#define IID_PPV_ARG(Itype, ppType)
CAtlString m_AboutGuidString
CAtlString m_Description
HRESULT hr
Definition: delayimp.cpp:582
#define NULL
Definition: types.h:112
#define FALSE
Definition: types.h:117
HRESULT WINAPI CLSIDFromString(LPCOLESTR str, LPCLSID clsid)
Definition: combase.c:1470
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, IUnknown *outer, DWORD cls_context, REFIID riid, void **obj)
Definition: combase.c:1685
void WINAPI CoTaskMemFree(void *ptr)
Definition: malloc.c:389
INT WINAPI ImageList_AddMasked(HIMAGELIST himl, HBITMAP hBitmap, COLORREF clrMask)
Definition: imagelist.c:573
pKey DeleteObject()
#define SUCCEEDED(hr)
Definition: intsafe.h:50
static HBITMAP
Definition: button.c:44
#define DPRINT
Definition: sndvol32.h:73
Definition: name.c:39
DWORD COLORREF
Definition: windef.h:100

◆ ~CSnapinCacheEntry()

CSnapinCacheEntry::~CSnapinCacheEntry ( )

Definition at line 78 of file CSnapinCacheEntry.cpp.

79{
81}

Member Function Documentation

◆ AboutGuidString()

const CAtlString & CSnapinCacheEntry::AboutGuidString ( ) const
inline

Definition at line 36 of file CSnapinCacheEntry.h.

36{ return m_AboutGuidString; }

Referenced by Create().

◆ Create()

static CSnapinCacheEntry * CSnapinCacheEntry::Create ( CRegKey &  SnapinsKey,
PWSTR  guidString,
HIMAGELIST  hImageList 
)
inlinestatic

Definition at line 47 of file CSnapinCacheEntry.h.

48 {
49 DPRINT1("Create(%S)\n", guidString);
50 WCHAR IndirectBuffer[MAX_PATH];
53 LONG ret;
54
55 CRegKey SnapinKey;
56 ret = SnapinKey.Open(SnapinsKey, guidString, KEY_READ);
57 if (ret != ERROR_SUCCESS)
58 {
59 return NULL;
60 }
61
62 CRegKey NodeTypesKey;
63 ret = NodeTypesKey.Open(SnapinKey, L"StandAlone", KEY_READ);
64 if (ret != ERROR_SUCCESS)
65 {
66 SnapinKey.Close();
67 return NULL;
68 }
69 NodeTypesKey.Close();
70
72 dwSize = MAX_PATH * sizeof(WCHAR);
73 if (SnapinKey.QueryStringValue(L"NameStringIndirect", IndirectBuffer, &dwSize) == ERROR_SUCCESS)
74 {
75 if (SUCCEEDED(SHLoadIndirectString(IndirectBuffer, Buffer, MAX_PATH, NULL)))
76 {
77 Name = Buffer;
78 }
79 else
80 {
81 Name.Empty();
82 }
83 }
84
85 if (Name.IsEmpty())
86 {
87 dwSize = MAX_PATH * sizeof(WCHAR);
88 if (SnapinKey.QueryStringValue(L"NameString", Buffer, &dwSize) == ERROR_SUCCESS)
89 {
90 Name = Buffer;
91 }
92 }
93
94 if (Name.IsEmpty())
95 {
96 SnapinKey.Close();
97 return NULL;
98 }
99
101 dwSize = MAX_PATH * sizeof(WCHAR);
102 if (SnapinKey.QueryStringValue(L"About", Buffer, &dwSize) == ERROR_SUCCESS)
103 {
105 }
106
107 SnapinKey.Close();
108
109 if (AboutGuidString.IsEmpty())
110 {
111 return NULL;
112 }
113
114 CAtlString GuidString = guidString;
115
116 return new CSnapinCacheEntry(GuidString, AboutGuidString, Name, hImageList);
117 }
#define DPRINT1
Definition: precomp.h:8
Definition: bufpool.h:45
const CAtlString & GuidString() const
const CAtlString & AboutGuidString() const
const CAtlString & Name() const
#define ERROR_SUCCESS
Definition: deptool.c:10
#define MAX_PATH
Definition: compat.h:34
HRESULT WINAPI SHLoadIndirectString(const WCHAR *src, WCHAR *dst, UINT dst_len, void **reserved)
Definition: string.c:1499
return ret
Definition: mutex.c:147
#define L(x)
Definition: resources.c:13
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
Definition: env.c:56
CAtlStringA CAtlString
Definition: atlstr.h:138
#define KEY_READ
Definition: nt_native.h:1026
short WCHAR
Definition: pedump.c:58
long LONG
Definition: pedump.c:60
uint32_t ULONG
Definition: typedefs.h:59

Referenced by CMainWnd::LoadSnapinCache().

◆ Description()

const CAtlString & CSnapinCacheEntry::Description ( ) const
inline

◆ GuidString()

const CAtlString & CSnapinCacheEntry::GuidString ( ) const
inline

Definition at line 35 of file CSnapinCacheEntry.h.

35{ return m_GuidString; }

Referenced by Create().

◆ Icon()

HICON CSnapinCacheEntry::Icon ( )
inline

Definition at line 42 of file CSnapinCacheEntry.h.

42{ return m_hIcon; }

Referenced by CAboutSnapinDialog::OnInitDialog().

◆ Name()

const CAtlString & CSnapinCacheEntry::Name ( ) const
inline

Definition at line 37 of file CSnapinCacheEntry.h.

37{ return m_Name; }

Referenced by Create(), CSnapin::CSnapin(), CAddDialog::InsertListItem(), and CSnapin::Name().

◆ NormalImageIndex()

int CSnapinCacheEntry::NormalImageIndex ( )
inline

Definition at line 44 of file CSnapinCacheEntry.h.

44{ return m_ImageNormal; }

Referenced by CAddDialog::InsertListItem().

◆ OpenImageIndex()

int CSnapinCacheEntry::OpenImageIndex ( )
inline

Definition at line 45 of file CSnapinCacheEntry.h.

45{ return m_ImageOpen; }

◆ Provider()

const CAtlString & CSnapinCacheEntry::Provider ( ) const
inline

◆ Version()

const CAtlString & CSnapinCacheEntry::Version ( ) const
inline

Definition at line 40 of file CSnapinCacheEntry.h.

40{ return m_Version; }

Referenced by CAboutSnapinDialog::OnInitDialog(), and CSnapin::Version().

Member Data Documentation

◆ m_AboutGuid

GUID CSnapinCacheEntry::m_AboutGuid
private

Definition at line 22 of file CSnapinCacheEntry.h.

Referenced by CSnapinCacheEntry().

◆ m_AboutGuidString

CAtlString CSnapinCacheEntry::m_AboutGuidString
private

Definition at line 14 of file CSnapinCacheEntry.h.

Referenced by AboutGuidString(), and CSnapinCacheEntry().

◆ m_Description

CAtlString CSnapinCacheEntry::m_Description
private

Definition at line 18 of file CSnapinCacheEntry.h.

Referenced by CSnapinCacheEntry(), and Description().

◆ m_Guid

GUID CSnapinCacheEntry::m_Guid
private

Definition at line 21 of file CSnapinCacheEntry.h.

Referenced by CSnapinCacheEntry().

◆ m_GuidString

CAtlString CSnapinCacheEntry::m_GuidString
private

Definition at line 13 of file CSnapinCacheEntry.h.

Referenced by CSnapinCacheEntry(), and GuidString().

◆ m_hIcon

HICON CSnapinCacheEntry::m_hIcon
private

Definition at line 27 of file CSnapinCacheEntry.h.

Referenced by CSnapinCacheEntry(), Icon(), and ~CSnapinCacheEntry().

◆ m_ImageNormal

int CSnapinCacheEntry::m_ImageNormal
private

Definition at line 24 of file CSnapinCacheEntry.h.

Referenced by CSnapinCacheEntry(), and NormalImageIndex().

◆ m_ImageOpen

int CSnapinCacheEntry::m_ImageOpen
private

Definition at line 25 of file CSnapinCacheEntry.h.

Referenced by CSnapinCacheEntry(), and OpenImageIndex().

◆ m_Loaded

BOOL CSnapinCacheEntry::m_Loaded
private

Definition at line 29 of file CSnapinCacheEntry.h.

◆ m_Name

CAtlString CSnapinCacheEntry::m_Name
private

Definition at line 15 of file CSnapinCacheEntry.h.

Referenced by Name().

◆ m_Provider

CAtlString CSnapinCacheEntry::m_Provider
private

Definition at line 17 of file CSnapinCacheEntry.h.

Referenced by CSnapinCacheEntry(), and Provider().

◆ m_Version

CAtlString CSnapinCacheEntry::m_Version
private

Definition at line 19 of file CSnapinCacheEntry.h.

Referenced by CSnapinCacheEntry(), and Version().


The documentation for this class was generated from the following files: