ReactOS 0.4.17-dev-784-g3812a95
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
 
int NormalImageIndex ()
 
int OpenImageIndex ()
 

Static Public Member Functions

static CSnapinCacheEntryCreate (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
 
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}
#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 76 of file CSnapinCacheEntry.cpp.

77{
78}

Member Function Documentation

◆ AboutGuidString()

const CAtlString & CSnapinCacheEntry::AboutGuidString ( ) const
inline

Definition at line 34 of file CSnapinCacheEntry.h.

34{ return m_AboutGuidString; }

Referenced by Create().

◆ Create()

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

Definition at line 43 of file CSnapinCacheEntry.h.

44 {
45 DPRINT1("Create(%S)\n", guidString);
46 WCHAR IndirectBuffer[MAX_PATH];
49 LONG ret;
50
51 CRegKey SnapinKey;
52 ret = SnapinKey.Open(SnapinsKey, guidString, KEY_READ);
53 if (ret != ERROR_SUCCESS)
54 {
55 return NULL;
56 }
57
58 CRegKey NodeTypesKey;
59 ret = NodeTypesKey.Open(SnapinKey, L"StandAlone", KEY_READ);
60 if (ret != ERROR_SUCCESS)
61 {
62 SnapinKey.Close();
63 return NULL;
64 }
65 NodeTypesKey.Close();
66
68 dwSize = MAX_PATH * sizeof(WCHAR);
69 if (SnapinKey.QueryStringValue(L"NameStringIndirect", IndirectBuffer, &dwSize) == ERROR_SUCCESS)
70 {
71 if (SUCCEEDED(SHLoadIndirectString(IndirectBuffer, Buffer, MAX_PATH, NULL)))
72 {
73 Name = Buffer;
74 }
75 else
76 {
77 Name.Empty();
78 }
79 }
80
81 if (Name.IsEmpty())
82 {
83 dwSize = MAX_PATH * sizeof(WCHAR);
84 if (SnapinKey.QueryStringValue(L"NameString", Buffer, &dwSize) == ERROR_SUCCESS)
85 {
86 Name = Buffer;
87 }
88 }
89
90 if (Name.IsEmpty())
91 {
92 SnapinKey.Close();
93 return NULL;
94 }
95
97 dwSize = MAX_PATH * sizeof(WCHAR);
98 if (SnapinKey.QueryStringValue(L"About", Buffer, &dwSize) == ERROR_SUCCESS)
99 {
101 }
102
103 SnapinKey.Close();
104
105 if (AboutGuidString.IsEmpty())
106 {
107 return NULL;
108 }
109
110 CAtlString GuidString = guidString;
111
112 return new CSnapinCacheEntry(GuidString, AboutGuidString, Name, hImageList);
113 }
#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

Definition at line 37 of file CSnapinCacheEntry.h.

37{ return m_Description; }

Referenced by CSnapin::Description(), and CAddDialog::OnItemChanged().

◆ GuidString()

const CAtlString & CSnapinCacheEntry::GuidString ( ) const
inline

Definition at line 33 of file CSnapinCacheEntry.h.

33{ return m_GuidString; }

Referenced by Create().

◆ Name()

const CAtlString & CSnapinCacheEntry::Name ( ) const
inline

◆ NormalImageIndex()

int CSnapinCacheEntry::NormalImageIndex ( )
inline

Definition at line 40 of file CSnapinCacheEntry.h.

40{ return m_ImageNormal; }

Referenced by CAddDialog::InsertListItem(), and CAddDialog::InsertTreeItem().

◆ OpenImageIndex()

int CSnapinCacheEntry::OpenImageIndex ( )
inline

Definition at line 41 of file CSnapinCacheEntry.h.

41{ return m_ImageOpen; }

Referenced by CAddDialog::InsertTreeItem().

◆ Provider()

const CAtlString & CSnapinCacheEntry::Provider ( ) const
inline

Definition at line 36 of file CSnapinCacheEntry.h.

36{ return m_Provider; }

Referenced by CAddDialog::InsertListItem(), and CSnapin::Provider().

◆ Version()

const CAtlString & CSnapinCacheEntry::Version ( ) const
inline

Definition at line 38 of file CSnapinCacheEntry.h.

38{ return m_Version; }

Referenced by 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_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 27 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: