24 #pragma warning(disable:4312) // 'type cast' : conversion from 'DWORD' to 'LPWSTR' of greater size 27 #define _ATL_DECLARE_GET_UNKNOWN(x) IUnknown* GetUnknown() {return _GetRawUnknown();} 31 #define BEGIN_COM_MAP(x) public: \ 32 typedef x _ComMapClass; \ 33 static HRESULT WINAPI _Cache(void* pv, REFIID iid, void** ppvObject, DWORD_PTR dw)\ 35 _ComMapClass* p = (_ComMapClass*)pv;\ 37 HRESULT hRes = CComObjectRootBase::_Cache(pv, iid, ppvObject, dw);\ 41 IUnknown* _GetRawUnknown() \ 42 { ATLASSERT(_GetEntries()[0].pFunc == _ATL_SIMPLEMAPENTRY); return (IUnknown*)((DWORD_PTR)this+_GetEntries()->dw); } \ 43 _ATL_DECLARE_GET_UNKNOWN(x)\ 44 HRESULT _InternalQueryInterface(REFIID iid, void** ppvObject) \ 45 { return InternalQueryInterface(this, _GetEntries(), iid, ppvObject); } \ 46 const static _ATL_INTMAP_ENTRY* WINAPI _GetEntries() { \ 47 static const _ATL_INTMAP_ENTRY _entries[] = { 49 #define DECLARE_GET_CONTROLLING_UNKNOWN() public:\ 50 virtual IUnknown* GetControllingUnknown() {return GetUnknown();} 52 #define _ATL_IIDOF(x) IID_##x 54 #define COM_INTERFACE_ENTRY(x)\ 56 offsetofclass(x, _ComMapClass), \ 59 #define COM_INTERFACE_ENTRY_IID(iid, x)\ 61 offsetofclass(x, _ComMapClass),\ 64 #define COM_INTERFACE_ENTRY2(x, x2)\ 66 (DWORD_PTR)((x*)(x2*)((_ComMapClass*)8))-8,\ 69 #define COM_INTERFACE_ENTRY_IMPL(x)\ 70 COM_INTERFACE_ENTRY_IID(_ATL_IIDOF(x), x##Impl<_ComMapClass>) 72 #define COM_INTERFACE_ENTRY_AGGREGATE(iid, punk)\ 74 (DWORD)offsetof(_ComMapClass, punk),\ 77 #define COM_INTERFACE_ENTRY_CHAIN(classname)\ 79 (DWORD_PTR)&_CComChainData<classname, _ComMapClass>::data,\ 82 #define END_COM_MAP() {NULL, 0, 0}}; return _entries;} 84 #define _ATL_DEBUG_ADDREF_RELEASE_IMPL(className)\ 85 virtual ULONG STDMETHODCALLTYPE AddRef(void) = 0;\ 86 virtual ULONG STDMETHODCALLTYPE Release(void) = 0; 88 #define DECLARE_PROTECT_FINAL_CONSTRUCT()\ 89 void InternalFinalConstructAddRef() {InternalAddRef();}\ 90 void InternalFinalConstructRelease() {InternalRelease();} 92 #define DECLARE_NOT_AGGREGATABLE(x) public:\ 93 typedef CComCreator2< CComCreator< CComObject< x > >, CComFailCreator<CLASS_E_NOAGGREGATION> > _CreatorClass; 94 #define DECLARE_AGGREGATABLE(x) public:\ 95 typedef CComCreator2< CComCreator< CComObject< x > >, CComCreator< CComAggObject< x > > > _CreatorClass; 96 #define DECLARE_ONLY_AGGREGATABLE(x) public:\ 97 typedef CComCreator2< CComFailCreator<E_FAIL>, CComCreator< CComAggObject< x > > > _CreatorClass; 99 #define DECLARE_CLASSFACTORY_EX(cf) typedef CComCreator< CComObjectCachedClassFactory< cf > > _ClassFactoryCreatorClass; 100 #define DECLARE_CLASSFACTORY() DECLARE_CLASSFACTORY_EX(CComClassFactory) 104 #define BEGIN_OBJECT_MAP(x) static _ATL_OBJMAP_ENTRY x[] = { 105 #define END_OBJECT_MAP() {NULL, NULL, NULL}}; 106 #define OBJECT_ENTRY(clsid, class) {\ 108 class::_ClassFactoryCreatorClass::CreateInstance,\ 109 class::_CreatorClass::CreateInstance },\ 112 #define DECLARE_REGISTRY_RESOURCEID(x) 115 #define CComConnectionPointContainerImpl IConnectionPointContainerImpl 116 #define BEGIN_CONNECTION_POINT_MAP(x) 117 #define CONNECTION_POINT_ENTRY(iid) 118 #define END_CONNECTION_POINT_MAP() 121 #define MSI_min(a,b) (((a) < (b)) ? (a) : (b)) 125 #define LOWORD(l) ((WORD)(l)) 129 #define HIWORD(l) ((WORD)(((DWORD_PTR)(l) >> 16) & 0xFFFF)) 132 #ifndef MAKEINTRESOURCE 133 #define MAKEINTRESOURCE(i) (LPWSTR)((DWORD)((WORD)(i))) 134 #endif //MAKEINTRESOURCE 136 #ifndef _DEFAULT_VECTORLENGTH 137 #define _DEFAULT_VECTORLENGTH 4 157 template <
class base,
class derived>
164 template <
class base,
class derived>
193 ULONG OuterRelease();
199 void InternalFinalConstructAddRef();
201 void InternalFinalConstructRelease();
218 return InternalQueryInterface(p, pcd->
pFunc(), iid, ppvObject);
233 template <
class ThreadModel>
236 template <
class ThreadModel>
262 template <
class ThreadModel>
267 typedef typename _ThreadModel::AutoCriticalSection
_CritSec;
279 m_pcritsec =
new _CritSec(iLockCategory);
296 m_pcritsec->SetLockCategory(iLockCat);
303 return _ThreadModel::Increment(&
m_dwRef);
308 return _ThreadModel::Decrement(&
m_dwRef);
314 m_pcritsec->Exception_unsafe_Lock__which_should_NOT_be_used_because_of_imminent_deadlocks__Use_SmartLock_instead();
319 _ASSERTE(
"CComObjectRootEx::Lock: no lock" == 0);
326 m_pcritsec->Exception_unsafe_Unlock__which_should_NOT_be_used_because_of_imminent_deadlocks__Use_SmartLock_instead();
331 _ASSERTE(
"CComObjectRootEx::Unlock: no lock" == 0);
357 template <
class ThreadModel>
362 typedef typename _ThreadModel::AutoCriticalSection
_CritSec;
373 return _ThreadModel::Increment(&
m_dwRef);
378 return _ThreadModel::Decrement(&
m_dwRef);
398 template <
class Base>
411 this->FinalRelease();
418 return this->InternalAddRef();
423 ULONG l = this->InternalRelease();
432 return this->_InternalQueryInterface(iid, ppvObject);
438 template <
class Base>
448 p->InternalFinalConstructAddRef();
449 hRes = p->FinalConstruct();
450 p->InternalFinalConstructRelease();
461 template <
class Base>
468 this->m_pOuterUnknown = (
IUnknown*)pv;
473 return this->OuterAddRef();
478 return this->OuterRelease();
483 HRESULT hr = this->OuterQueryInterface(iid, ppvObject);
484 if (
FAILED(hr) && this->_GetRawUnknown() != this->m_pOuterUnknown)
485 hr = this->_InternalQueryInterface(iid, ppvObject);
493 return this->m_pOuterUnknown;
499 template <
class contained>
502 public CComObjectRootEx< typename contained::_ThreadModel::ThreadModelNoCS >
511 #if defined(WIN32) && !defined(WIN64)
524 #if defined(WIN32) && !defined(WIN64) 534 #if defined(WIN32) && !defined(WIN64) 567 if (ppvObject ==
NULL)
569 *ppvObject = (
void*)(
IUnknown*)
this;
574 hRes =
m_contained._InternalQueryInterface(iid, ppvObject);
610 template <
class Base>
624 this->FinalRelease();
631 ULONG l = this->InternalAddRef();
637 ULONG l = this->InternalRelease();
646 return this->_InternalQueryInterface(iid, ppvObject);
667 p->InternalFinalConstructAddRef();
668 hRes = p->FinalConstruct();
669 p->InternalFinalConstructRelease();
671 hRes = p->QueryInterface(
riid,
ppv);
679 template <HRESULT hr>
689 template <
class T1,
class T2>
696 return (pv ==
NULL) ?
698 T2::CreateInstance(pv,
riid,
ppv);
732 void SetVoid(
void* pv);
733 _ATL_CREATORFUNC* m_pfnCreateInstance;
754 template <
class T, const IID* pi
id, const GUID* plib
id>
766 template <const IID* pi
id>
777 template <
class T,
const IID* piid,
class CDV >
853 memmove(p1, p2,
sizeof(T));
893 #ifdef NO_WCHAR_SUPPORT 902 #ifdef NO_WCHAR_SUPPORT 903 ::strcpy_s(*p1,(
ULONG)(::strlen(*p2)+1),*p2);
905 ::wcscpy_s(*p1,(
ULONG)(::wcslen(*p2)+1),*p2);
908 #ifdef NO_WCHAR_SUPPORT 909 ::strlcpy(*p1, *p2, strlen(*p2)+1);
911 ::wcslcpy(*p1, *p2, wcslen(*p2)+1);
968 if (*p) (*p)->Release();
982 template <
class Base, const IID* pi
id,
class T,
class Copy,
class ThreadModel = CComObjectThreadModel>
993 template <
class Base, const IID* pi
id,
class T,
class Copy>
999 m_begin = m_end = m_iter =
NULL;
1027 template <
class Base, const IID* pi
id,
class T,
class Copy>
1030 if (m_dwFlags & BitOwn)
1032 for (T* p = m_begin; p != m_end; p++)
1038 template <
class Base, const IID* pi
id,
class T,
class Copy>
1040 ULONG* pceltFetched)
1042 if (rgelt ==
NULL || (celt != 1 && pceltFetched ==
NULL))
1044 if (m_begin ==
NULL || m_end ==
NULL || m_iter ==
NULL)
1051 if (pceltFetched !=
NULL)
1052 *pceltFetched = nMin;
1056 HRESULT hr = Copy::copy(pelt, m_iter);
1059 while (rgelt < pelt)
1060 Copy::destroy(rgelt++);
1061 if (pceltFetched !=
NULL)
1071 template <
class Base, const IID* pi
id,
class T,
class Copy>
1075 if (m_iter >= m_end)
1080 if (m_iter < m_begin)
1088 template <
class Base, const IID* pi
id,
class T,
class Copy>
1097 hRes = _class::CreateInstance(&p);
1101 if(m_dwFlags & BitCopy)
1102 hRes = p->Init(m_begin, m_end,
this);
1104 hRes = p->Init(m_begin, m_end, m_spUnk);
1109 hRes = p->_InternalQueryInterface(*piid, (
void**)ppEnum);
1118 template <
class Base, const IID* pi
id,
class T,
class Copy>
1125 ATLTRY(m_begin =
new T[end-begin])
1127 if (m_begin ==
NULL)
1129 for (T* i=begin; i != end; i++)
1132 HRESULT hr = Copy::copy(m_iter, i);
1139 m_begin = m_end = m_iter =
NULL;
1144 m_end = m_begin + (end-begin);
1158 template <
class Base,
const IID* piid,
class T,
class Copy,
class ThreadModel >
1179 template <
class Base, const IID* pi
id,
class T,
class Copy,
class CollType,
class ThreadModel = CComObjectThreadModel>
1182 template <
class Base, const IID* pi
id,
class T,
class Copy,
class CollType>
1188 m_spUnk = pUnkForRelease;
1189 m_pcollection = &collection;
1190 m_iter = m_pcollection->begin();
1197 if (m_pcollection ==
NULL)
1199 m_iter = m_pcollection->begin();
1209 template <
class Base, const IID* pi
id,
class T,
class Copy,
class CollType>
1211 ULONG* pceltFetched)
1213 if (rgelt ==
NULL || (celt != 1 && pceltFetched ==
NULL))
1215 if (m_pcollection ==
NULL)
1221 while (
SUCCEEDED(hr) && m_iter != m_pcollection->end() && nActual < celt)
1223 hr = Copy::copy(pelt, &*m_iter);
1226 while (rgelt < pelt)
1227 Copy::destroy(rgelt++);
1238 *pceltFetched = nActual;
1244 template <
class Base, const IID* pi
id,
class T,
class Copy,
class CollType>
1250 if (m_iter != m_pcollection->end())
1261 template <
class Base, const IID* pi
id,
class T,
class Copy,
class CollType>
1270 hRes = _class::CreateInstance(&p);
1273 hRes = p->Init(m_spUnk, *m_pcollection);
1277 hRes = p->_InternalQueryInterface(*piid, (
void**)ppEnum);
1286 template <
class Base, const IID* pi
id,
class T,
class Copy,
class CollType,
class ThreadModel>
1310 template <const IID* pi
id>
1329 TCHAR szDesc[1024] =
_T(
"Unknown Error");
1332 if (
HIWORD(lpszDesc) == 0)
1335 ATLASSERT((nID >= 0x0200 && nID <= 0xffff) || hRes != 0);
1337 #if defined(WIN32) && !defined(_USE_MSI_COM) 1338 if (LoadString(hInst, nID, szDesc, 1024) == 0)
1342 #endif // WIN32 && !_USE_MSI_COM 1353 pICEI->SetGUID(iid);
1357 pICEI->SetSource(
lpsz);
1358 if (dwHelpID != 0 && lpszHelpFile !=
NULL)
1360 pICEI->SetHelpContext(dwHelpID);
1361 pICEI->SetHelpFile(const_cast<LPOLESTR>(lpszHelpFile));
1363 CoTaskMemFree(
lpsz);
1364 pICEI->SetDescription((
LPOLESTR)lpszDesc);
1375 HRESULT hRes, HINSTANCE hInst)
1384 lpszHelpFile, iid, hRes, hInst);
1423 iIndex =
DWORD(pp-begin());
1434 return (m_nSize < 2) ? &m_pUnk : m_ppUnk;
1439 return (m_nSize < 2) ? (&m_pUnk)+m_nSize : &m_ppUnk[m_nSize];
1444 if (nIndex < 0 || nIndex >= m_nSize)
1447 return (m_nSize < 2) ? m_pUnk : m_ppUnk[nIndex];
1481 else if (m_nSize == 1)
1493 for (pp = begin();pp<end();pp++)
1498 iIndex = (
DWORD)(pp-begin());
1502 int nAlloc = m_nSize*2;
1507 memset(&m_ppUnk[m_nSize], 0,
sizeof(
IUnknown*)*m_nSize);
1508 m_ppUnk[m_nSize] = pUnk;
1520 DWORD iIndex = dwCookie-1;
1521 if (iIndex >= (
DWORD)m_nSize)
1528 begin()[iIndex] =
NULL;
CComClassFactory()
Definition: Msi_atlcom.h:715
const _ATL_INTMAP_ENTRY *WINAPI * pFunc()
Definition: Msi_variant.h:90
Definition: Msi_atlcom.h:145
static void init(T *)
Definition: Msi_atlcom.h:857
Definition: Msi_atlcom.h:680
Definition: Msi_atlcom.h:690
signed char BOOL
Definition: PDCwtypes.h:101
STDMETHOD_(ULONG, Release)()
Definition: Msi_atlcom.h:635
static void destroy(T **p)
Definition: Msi_atlcom.h:966
Definition: Msi_ocidl.h:106
DWORD_PTR dwOffset
Definition: Msi_atlcom.h:153
CComObjectRootEx< ThreadModel > * m_p
Definition: Msi_atlcom.h:252
Definition: Msi_atlcom.h:994
#define offsetofclass(base, derived)
Definition: Msi_atldef.h:32
LPOLESTR lpsz
Definition: Msi_objbase.h:85
ULONG InternalAddRef()
Definition: Msi_atlcom.h:300
IUnknown __RPC_FAR * LPUNKNOWN
Definition: Msi_oaidl.h:53
IUnknown ** m_ppUnk
Definition: Msi_atlcom.h:1464
DWORD dwOffsetVar
Definition: Msi_atlcom.h:147
Definition: Msi_atlcom.h:755
MSynch::AtomicLong m_dwRef
Definition: Msi_atlcom.h:223
BOOL Remove(DWORD dwCookie)
Definition: Msi_atlcom.h:1514
#define E_POINTER
Definition: PDCwinerror.h:141
WINOLEAUTAPI DLL_MSICOM_EXIM VariantClear(VARIANTARG *pvarg)
#define STDMETHODIMP
Definition: PDCwtypes.h:84
T * m_end
Definition: Msi_atlcom.h:1016
#define _DEFAULT_VECTORLENGTH
Definition: Msi_atlcom.h:137
#define MAKE_HRESULT(sev, fac, code)
Definition: PDCwinerror.h:55
#define USES_CONVERSION
Definition: Msi_ccombstr.h:30
CComEnumOnSTL()
Definition: Msi_atlcom.h:1295
#define STDMETHODCALLTYPE
Definition: PDCwtypes.h:76
Definition: Msi_atlcom.h:824
Definition: Msi_atlbase.h:93
#define MAKEINTRESOURCE(i)
Definition: Msi_atlcom.h:133
LONG DISPID
Definition: Msi_oaidl.h:237
#define STDMETHOD(method)
Definition: PDCwtypes.h:80
Definition: Msi_atlcom.h:1311
void clear()
Definition: Msi_atlcom.h:1455
Definition: Msi_atlcom.h:989
ThreadModel _ThreadModel
Definition: Msi_atlcom.h:266
Definition: Msi_ocidl.h:125
Definition: Msi_atlcom.h:737
#define BEGIN_COM_MAP(x)
Definition: Msi_atlcom.h:31
STDMETHOD_(ULONG, AddRef)()
Definition: Msi_atlcom.h:471
CComObjectRootEx(MSynch::EnumDSSLockStackCategory iLockCategory)
Definition: Msi_atlcom.h:270
virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppvObject)=0
long HRESULT
Definition: FragmentedString.h:20
static HRESULT copy(T **p1, T **p2)
Definition: Msi_atlcom.h:954
CComEnum< Base, piid, T, Copy > _CComEnum
Definition: Msi_atlcom.h:1164
static void init(CONNECTDATA *)
Definition: Msi_atlcom.h:940
T * m_iter
Definition: Msi_atlcom.h:1017
WINOLEAUTAPI DLL_MSICOM_EXIM VariantCopy(VARIANTARG *pvargDest, VARIANTARG *pvargSrc)
HRESULT WINAPI AtlReportError(const CLSID &clsid, UINT nID, const IID &iid, HRESULT hRes, HINSTANCE hInst)
Definition: Msi_atlcom.h:1374
#define _ASSERTE(x)
Definition: Asserte.h:40
void FinalRelease()
Definition: Msi_atlcom.h:532
static void destroy(LPOLESTR *p)
Definition: Msi_atlcom.h:922
CComObjectCachedClassFactory(void *=NULL)
Definition: Msi_atlcom.h:616
_ThreadModel::AutoCriticalSection _CritSec
Definition: Msi_atlcom.h:362
#define ATLASSERT(expr)
Definition: Msi_atldef.h:18
Definition: Msi_atlcom.h:767
Base _BaseClass
Definition: Msi_atlcom.h:614
IUnknown * m_pOuterUnknown
Definition: Msi_atlcom.h:224
~CComObjectCachedClassFactory()
Definition: Msi_atlcom.h:621
Definition: ReferenceCountedImpl.h:18
Definition: Msi_atlcom.h:158
STDMETHOD() Skip(ULONG celt)
Definition: Msi_atlcom.h:1245
Definition: Msi_atlcom.h:1287
Definition: LockCategories.h:82
#define WINAPI
Definition: PDCwindows.h:52
#define S_FALSE
Definition: PDCwinerror.h:32
Definition: Msi_atlcom.h:1402
CComAggObject(void *pv)
Definition: Msi_atlcom.h:509
unsigned long DWORD_PTR
Definition: Msi_atlbase.h:34
Definition: Msi_atlcom.h:1159
STDMETHOD() Next(ULONG celt, T *rgelt, ULONG *pceltFetched)
Definition: Msi_atlcom.h:1210
_ATL_CREATORFUNC * pFunc
Definition: Msi_atlcom.h:148
EXTERN_C const IID IID_IErrorInfo
Definition: Msi_oaidl.h:161
void * LPVOID
Definition: PDCwtypes.h:136
Definition: Msi_atlcom.h:1183
unsigned int UINT
Definition: PDCwtypes.h:110
#define S_OK
Definition: PDCwinerror.h:31
#define NOT_IMP_ASSERTE
_ATL_NO_PRAGMA_WARNINGS
Definition: Msi_atlbase.h:19
Base _BaseClass
Definition: Msi_atlcom.h:465
#define FAILED(Status)
Definition: PDCwinerror.h:47
WINOLEAUTAPI DLL_MSICOM_EXIM SetErrorInfo(ULONG dwReserved, IErrorInfo *perrinfo)
static void init(VARIANT *p)
Definition: Msi_atlcom.h:875
void Lock()
Definition: Msi_atlcom.h:311
DWORD WINAPI GetCookie(IUnknown **pp)
Definition: Msi_atlcom.h:1420
STDMETHOD() Skip(ULONG celt)
Definition: Msi_atlcom.h:1072
#define CLSID_NULL
Definition: PDCwtypes.h:326
CComEnumImpl< Base, piid, T, Copy > _CComEnumBase
Definition: Msi_atlcom.h:1165
STDMETHOD() Clone(Base **ppEnum)
Definition: Msi_atlcom.h:1089
_ThreadModel::AutoCriticalSection _CritSec
Definition: Msi_atlcom.h:267
IUnknown ** end()
Definition: Msi_atlcom.h:1437
CComEnumFlags
Definition: Msi_atlcom.h:985
static HRESULT copy(CONNECTDATA *p1, CONNECTDATA *p2)
Definition: Msi_atlcom.h:932
VARTYPE vt
Definition: Msi_variant.h:148
DWORD LCID
Definition: PDCwtypes.h:294
static HRESULT WINAPI CreateInstance(CComObject< Base > **pp)
Definition: Msi_atlcom.h:439
Definition: Msi_atlcom.h:462
~CComObject()
Definition: Msi_atlcom.h:408
Definition: LockCategories.h:36
#define _T(x)
Definition: PDCtchar.h:94
#define COM_INTERFACE_ENTRY_IID(iid, x)
Definition: Msi_atlcom.h:59
WCHAR OLECHAR
Definition: PDCwtypes.h:390
static HRESULT WINAPI CreateInstance(void *, REFIID, LPVOID *)
Definition: Msi_atlcom.h:683
~IConnectionPointImpl()
Definition: Msi_atlcom.h:781
REFIID LPVOID * ppv
Definition: Msi_atlbase.h:90
#define SUCCEEDED(Status)
Definition: PDCwinerror.h:42
Definition: Msi_atlcom.h:706
#define LOWORD(l)
Definition: Msi_atlcom.h:125
BOOL InlineIsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: Msi_atlbase.h:53
static _ATL_CHAINDATA data
Definition: Msi_atlcom.h:161
~CComEnumImpl()
Definition: Msi_atlcom.h:1028
#define DECLARE_AGGREGATABLE(x)
Definition: Msi_atlcom.h:94
ULONG InternalRelease()
Definition: Msi_atlcom.h:375
Definition: Msi_ocidl.h:48
static void destroy(VARIANT *p)
Definition: Msi_atlcom.h:880
STDMETHOD_(ULONG, AddRef)()
Definition: Msi_atlcom.h:549
CComEnum()
Definition: Msi_atlcom.h:1167
T _CoClass
Definition: Msi_atlcom.h:742
WINOLEAUTAPI DLL_MSICOM_EXIM CreateErrorInfo(ICreateErrorInfo **pperrinfo)
STDMETHOD_(ULONG, AddRef)()
Definition: Msi_atlcom.h:629
static HRESULT WINAPI CreateInstance(void *pv, REFIID riid, LPVOID *ppv)
Definition: Msi_atlcom.h:693
CComObjectLockT(CComObjectRootEx< ThreadModel > *p)
Definition: Msi_atlcom.h:240
Definition: Msi_atlcom.h:951
STDMETHOD() QueryInterface(REFIID iid, void **ppvObject)
Definition: Msi_atlcom.h:430
IUnknown * m_pUnk
Definition: Msi_atlcom.h:1465
Definition: Msi_atlcom.h:399
Definition: Msi_atlcom.h:358
#define E_FAIL
Definition: PDCwinerror.h:168
static HRESULT WINAPI CreateInstance(LPUNKNOWN pUnkOuter, CComAggObject< contained > **pp)
Definition: Msi_atlcom.h:580
CComObjectLockT< _ThreadModel > ObjectLock
Definition: Msi_atlcom.h:363
CComDynamicUnkArray()
Definition: Msi_atlcom.h:1405
Definition: Msi_oaidl.h:215
Definition: Msi_atlcom.h:500
DWORD m_dwFlags
Definition: Msi_atlcom.h:1018
static HRESULT WINAPI CreateInstance(void *pv, REFIID riid, LPVOID *ppv)
Definition: Msi_atlcom.h:658
IUnknown ** begin()
Definition: Msi_atlcom.h:1432
REFIID LPVOID DWORD_PTR dw
Definition: Msi_atlbase.h:90
#define END_COM_MAP()
Definition: Msi_atlcom.h:82
HRESULT FinalConstruct()
Definition: Msi_atlcom.h:522
void InternalFinalConstructAddRef()
CollType::iterator m_iter
Definition: Msi_atlcom.h:1206
static void destroy(T *)
Definition: Msi_atlcom.h:861
#define DECLARE_CLASSFACTORY()
Definition: Msi_atlcom.h:100
#define DISP_E_EXCEPTION
Definition: PDCwinerror.h:285
static HRESULT copy(VARIANT *p1, VARIANT *p2)
Definition: Msi_atlcom.h:870
CComObjectLockT< _ThreadModel > ObjectLock
Definition: Msi_atlcom.h:268
Definition: Msi_atlcom.h:990
Base _BaseClass
Definition: Msi_atlcom.h:402
ThreadModel _ThreadModel
Definition: Msi_atlcom.h:361
#define HIWORD(l)
Definition: Msi_atlcom.h:129
STDMETHOD() QueryInterface(REFIID iid, void **ppvObject)
Definition: Msi_atlcom.h:562
BOOL InlineIsEqualUnknown(REFGUID rguid1)
Definition: Msi_atlbase.h:68
#define MSI_min(a, b)
Definition: Msi_atlcom.h:121
~CComObjectLockT()
Definition: Msi_atlcom.h:247
#define E_OUTOFMEMORY
Definition: PDCwinerror.h:114
REFIID riid
Definition: Msi_atlbase.h:90
Definition: Msi_ocidl.h:95
unsigned short WORD
Definition: PDCwtypes.h:109
int GetSize() const
Definition: Msi_atlcom.h:1450
Definition: Msi_oaidl.h:41
HRESULT QueryInterface(Q **pp) const
Definition: Msi_atlbase.h:529
#define TRUE
Definition: PDCwtypes.h:58
HRESULT WINAPI AtlSetErrorInfo(const CLSID &clsid, LPCOLESTR lpszDesc, DWORD dwHelpID, LPCOLESTR lpszHelpFile, const IID &iid, HRESULT hRes, HINSTANCE hInst)
Definition: Msi_atlcom.h:1324
Definition: Msi_atlcom.h:988
#define DLL_MSICOM_EXIM
Definition: MsiCOM.h:19
static HRESULT WINAPI _Delegate(void *pv, REFIID iid, void **ppvObject, DWORD_PTR dw)
Definition: Msi_atlcom.h:205
static void init(LPOLESTR *p)
Definition: Msi_atlcom.h:917
IUnknown * GetControllingUnknown()
Definition: Msi_atlcom.h:491
STDMETHOD_(ULONG, Release)()
Definition: Msi_atlcom.h:554
static HRESULT copy(LPOLESTR *p1, LPOLESTR *p2)
Definition: Msi_atlcom.h:890
Definition: Msi_atlcom.h:176
CComPtr< IUnknown > m_spUnk
Definition: Msi_atlcom.h:1204
#define ATL_NO_VTABLE
Definition: Msi_atldef.h:21
int m_nSize
Definition: Msi_atlcom.h:1467
STDMETHOD_(ULONG, AddRef)()
Definition: Msi_atlcom.h:416
IEnumOnSTLImpl< Base, piid, T, Copy, CollType > _CComEnumBase
Definition: Msi_atlcom.h:1293
Definition: AtomicLong.h:71
~CComDynamicUnkArray()
Definition: Msi_atlcom.h:1411
Definition: Msi_variant.h:147
ULONG InternalRelease()
Definition: Msi_atlcom.h:305
#define FALSE
Definition: PDCwtypes.h:54
void Unlock()
Definition: Msi_atlcom.h:323
CComEnumImpl()
Definition: Msi_atlcom.h:997
virtual ~CComObjectRootEx()
Definition: Msi_atlcom.h:283
Definition: Msi_oaidl.h:390
Definition: Msi_oaidl.h:59
CComObject(void *=NULL)
Definition: Msi_atlcom.h:403
static void destroy(CONNECTDATA *p)
Definition: Msi_atlcom.h:944
WCHAR TCHAR
Definition: PDCwtypes.h:352
void _SetSubjectObject()
Definition: Msi_atlcom.h:338
static void init(T **)
Definition: Msi_atlcom.h:962
virtual ULONG STDMETHODCALLTYPE Release(void)=0
HRESULT Init(IUnknown *pUnkForRelease, CollType &collection)
Definition: Msi_atlcom.h:1186
#define E_NOINTERFACE
Definition: PDCwinerror.h:132
CComObjectRootEx_NoLock()
Definition: Msi_atlcom.h:366
Definition: Msi_atlcom.h:655
virtual ULONG STDMETHODCALLTYPE AddRef(void)=0
CComEnumOnSTL< Base, piid, T, Copy, CollType, ThreadModel > _CComEnum
Definition: Msi_atlcom.h:1292
Definition: Msi_atlbase.h:247
T * m_begin
Definition: Msi_atlcom.h:1015
FlagBits
Definition: Msi_atlcom.h:1020
OLECHAR __RPC_FAR * LPOLESTR
Definition: PDCwtypes.h:392
static HRESULT copy(T *p1, T *p2)
Definition: Msi_atlcom.h:851
ULONG InternalAddRef()
Definition: Msi_atlcom.h:370
Definition: Msi_atlcom.h:973
Definition: StaticCheck.h:26
STDMETHOD_(ULONG, Release)()
Definition: Msi_atlcom.h:421
Definition: Msi_atlcom.h:848
STDMETHOD_(ULONG, Release)()
Definition: Msi_atlcom.h:476
CComContainedObject(void *pv)
Definition: Msi_atlcom.h:466
const OLECHAR __RPC_FAR * LPCOLESTR
Definition: PDCwtypes.h:394
DWORD Add(IUnknown *pUnk)
Definition: Msi_atlcom.h:1470
Definition: Msi_oaidl.h:472
STDMETHOD() Next(ULONG celt, T *rgelt, ULONG *pceltFetched)
Definition: Msi_atlcom.h:1039
void Lock()
Definition: Msi_atlcom.h:381
contained _BaseClass
Definition: Msi_atlcom.h:505
DWORD ULONG
Definition: PDCwtypes.h:127
STDMETHOD() QueryInterface(REFIID iid, void **ppvObject)
Definition: Msi_atlcom.h:644
#define FACILITY_ITF
Definition: PDCwinerror.h:74
#define ATLTRY(x)
Definition: Msi_atldef.h:19
#define COM_INTERFACE_ENTRY(x)
Definition: Msi_atlcom.h:54
unsigned long DWORD
Definition: PDCwtypes.h:121
~CComAggObject()
Definition: Msi_atlcom.h:543
#define NULL
Definition: Null.h:10
CComContainedObject< contained > m_contained
Definition: Msi_atlcom.h:602
static HRESULT WINAPI _Chain(void *pv, REFIID iid, void **ppvObject, DWORD_PTR dw)
Definition: Msi_atlcom.h:214
Definition: Msi_atlcom.h:151
Definition: Msi_atlcom.h:234
Definition: Msi_atlbase.h:42
void SetLockCategory(MSynch::EnumDSSLockStackCategory iLockCat)
Definition: Msi_atlcom.h:293
IUnknown __RPC_FAR * pUnk
Definition: Msi_ocidl.h:97
Definition: Msi_ocidl.h:77
#define E_NOTIMPL
Definition: PDCwinerror.h:105
Definition: LockCategories.h:81
Definition: Msi_atlcom.h:237
EnumDSSLockStackCategory
Definition: LockCategories.h:32
static IUnknown *WINAPI GetUnknown(DWORD dwCookie)
Definition: Msi_atlcom.h:1427
void Unlock()
Definition: Msi_atlcom.h:385
STDMETHOD() QueryInterface(REFIID iid, void **ppvObject)
Definition: Msi_atlcom.h:481
void InternalFinalConstructRelease()
#define REFIID
Definition: PDCwtypes.h:321
STDMETHOD() Clone(Base **ppEnum)
Definition: Msi_atlcom.h:1262
Definition: Base/Base/GUID.h:32
CollType * m_pcollection
Definition: Msi_atlcom.h:1205
HRESULT Init(T *begin, T *end, IUnknown *pUnk, CComEnumFlags flags=AtlFlagNoCopy)
Definition: Msi_atlcom.h:1119
Definition: Msi_atlcom.h:778
IUnknown * GetAt(int nIndex)
Definition: Msi_atlcom.h:1442
WINOLEAPI DLL_MSICOM_EXIM ProgIDFromCLSID(REFCLSID clsid, LPOLESTR FAR *lplpszProgID)
Definition: Msi_atlcom.h:611
CComPtr< IUnknown > m_spUnk
Definition: Msi_atlcom.h:1014