Microsoft Common Object Model (namespace Com)


Assistant: It provides helper functions for COM
static HRESULT CreateClassFiles(const wchar_t* name, IDispatchPtr dispatch, const wchar_t* nameSpace)
Creates a class (header file and source file) from a IDispatch interface (name is for display purposes only)
static HRESULT GetTypeInfoData(IDispatchPtr dispatch, Com::TypeInfoData& tid)
Returns the list of functions from a IDispatch interface
static HRESULT GetTypeInfoText(const wchar_t* name, IDispatchPtr dispatch, list<wstring >& result)
Returns text representing the list of functions and enums from a IDispatch interface (name is for display purposes only)
static HRESULT GetTypeLibData(ITypeLibPtr typeLib, Com::TypeLibData& out_data)
Given a ITypeLib interface it creates a list of the interfaces, and enums in the library Each interface has a list of functions (Each function has a vector of parameters) Each enum has a list of values
static HRESULT GetTypeLibHelp(REFCLSID clsidTypeLib, WORD version, WORD subversion, wstring& out_help, wstring& out_helpFile)
Returns the help string and help file associated with a TypeLib
static HRESULT GetUserDefinedInfo(ITypeInfoPtr typeInfo, HREFTYPE hreftype, Com::FuncParam& param)
Given a ITypeInfo interface returns if it is an enum or an IDispatch and the name
static HRESULT ImportComLibrary(const wchar_t* path, Com::TypeLibData& typeLibData)
Creates a class (header file and source file) from a Com::TypeLibData object path is the path where the header and source files will be created out_libName returns the name of the library
static HRESULT ImportComLibraryFromFile(const wchar_t* path, const wchar_t* filename, wstring& out_libName)
Creates a class (header file and source file) from a tlb, olb or dll file path is the path where the header and source files will be created out_libName returns the name of the library
static HRESULT ImportComLibraryFromProgID(const wchar_t* path, const wchar_t* progID, wstring& out_libName)
Creates a class (header file and source file) from a progID path is the path where the header and source files will be created out_libName returns the name of the library
static HRESULT ReadCoClass(ITypeInfoPtr typeInfo, Com::TypeInfoData& tid)
Fills the tid.iid
static HRESULT ReadDispatch(ITypeInfoPtr typeInfo, Com::TypeInfoData& tid)
Fills the tid.iid and tid.funcList
static HRESULT ReadEnum(ITypeInfoPtr typeInfo, Com::TypeInfoData& tid)
Fills the tid.iid and tid.enumList
static HRESULT ReadRecord(ITypeInfoPtr typeInfo, Com::TypeInfoData& tid)
Fills the tid.iid
static HRESULT ReadTypeLibFromFile(const wchar_t* filename, Com::TypeLibData& out_data)
Given a tlb, old, or dll file it creates a list of the interfaces, and enums in the library Each interface has a list of functions (Each function has a vector of parameters) Each enum has a list of values
static HRESULT ReadTypeLibFromProgID(const wchar_t* progID, Com::TypeLibData& out_data)
Given a ProgID it creates a list of the interfaces, and enums in the library Each interface has a list of functions (Each function has a vector of parameters) Each enum has a list of values
static bool FindNameFromClsid(TypeLibData& typeLibData, REFCLSID clsid, wstring& out_name)
static bool FindNameFromIid(TypeLibData& typeLibData, REFIID iid, wstring& out_name)
static bool GetTypeInfoData(HWND hWnd, const wchar_t* progId, Com::TypeInfoData& tid)
Given a ProgID or a ClassID in the format {...}, it returns the list of functions and enums
static bool IsCoClassName(TypeLibData& typeLibData, const wstring& name)
static bool IsComLibraryInstalled(const wchar_t* clsidString)
if clsidString = L"AcroPDF.PDF.1", the function returns true if the Acrobar Reader ActiveX is installed
static bool IsInterfaceName(TypeLibData& typeLibData, const wstring& name)
static int GetProgInfo(vector<Com::ProgInfo >& info, bool controlsOnly)
Returns a list of ProgID reading: HKEY_CLASSES_ROOT\CLSID
static void CreateClassName(const wstring& input, wstring& output)
If input begins with underscore, it will remove the underscore and add an X at the end
static void RenderEnumText(TypeInfoData& typeInfoData, wstring& headerContent)
Appends the header file text from a TypeInfoData
static void RenderFuncText(const wchar_t* nameSpace, bool earlyBinding, bool isIDispatch, TypeInfoData& typeInfoData, wstring& headerContent, wstring& sourceContent)
Appends the header file text and source file text from a TypeInfoData
static void ReplaceNameConflicts(wstring& in_out)
Replace known name conflicts in the string
~ Assistant()

Base: It has a set of functions to implement a COM server
static DWORD Begin(HINSTANCE hInstance, ULONG reason)
static HRESULT RegisterComClass(HINSTANCE hInstance, REFIID libid, REFCLSID clsid, const wchar_t* companyName, const wchar_t* className, int version)
static HRESULT RegisterComClass(HINSTANCE hInstance, const wchar_t* libidString, const wchar_t* clsidString, const wchar_t* companyName, const wchar_t* className, int version)
clsidString = L"{808FAFE1-1B3C-4013-B0BC-2B02AB788807}" companyName = L"MyCompany" version = 1
static HRESULT RegisterComClass(REFIID libid, REFCLSID clsid, const wchar_t* companyName, const wchar_t* className, int version)
static HRESULT RegisterComClass(const wchar_t* libidString, const wchar_t* clsidString, const wchar_t* companyName, const wchar_t* className, int version)
static HRESULT RegisterTypeLib(HINSTANCE hInstance, REFIID libid, int version, int subversion)
static HRESULT RegisterTypeLib(HINSTANCE hInstance, const wchar_t* libidString, int version, int subversion)
static HRESULT RegisterTypeLib(REFIID libid, int version, int subversion)
static HRESULT RegisterTypeLib(const wchar_t* libidString, int version, int subversion)
static HRESULT UnRegisterComClass(REFIID libid, REFCLSID clsid)
static HRESULT UnRegisterComClass(const wchar_t* libidString, const wchar_t* clsidString)
static HRESULT UnRegisterTypeLib(REFIID libid, int version, int subversion)
static HRESULT UnRegisterTypeLib(const wchar_t* libidString, int version, int subversion)
static bool CanUnloadNow()
static void DecreaseLockCount()
static void DecreaseObjectCount()
static void IncreaseLockCount()
static void IncreaseObjectCount()

Boot: It automatically calls CoInitialize(NULL) and CoUninitialize()
Boot()
~ Boot()

ClassFactory: It implements IClassFactory
ClassFactory()
STDMETHODIMP CreateInstance(LPUNKNOWN pUnkOuter, REFIID riid, void* * ppv)
STDMETHODIMP LockServer(BOOL fLock)
~ ClassFactory(void)

ClassInfo
ClassInfo()
void Clear()
~ ClassInfo()

DispInfo
DispInfo()
~ DispInfo()

Enum
Enum()
void Clear()
~ Enum()

Exception
Exception()
Exception(HRESULT hr, const wchar_t* info)
Exception(HRESULT hr, const wchar_t* info, EXCEPINFO excepInfo, int argError)
Exception(const Exception& init)
const wchar_t* ErrorMessage()
static int FormatMessageFromHResult(HRESULT hr, wstring& out_text)
Formats a message string. The function requires a message definition as input. It can come from a message table resource in an already-loaded module. Or the caller can ask the function to search the system's message table resource(s) for the message definition. The function finds the message definition in a message table resource based on a message identifier and a language identifier.  Google Microsoft
static void Display(HWND hWnd, _com_error& input_error, const wchar_t* caption)
static void GetErrorText(_com_error& input_error, wchar_t* buffer, int buffer_len)
static wchar_t* GetErrorDescr(HRESULT hr)
virtual ~ Exception(void)
void Display(HWND hWnd, const wchar_t* caption)
void GetErrorText(wchar_t* buffer, int buffer_len);
void Throw(const wchar_t* info, HRESULT hr)
void ThrowNullPointer(const wchar_t* info)
void ok(const wchar_t* info, HRESULT hr)

FuncInfo
FuncInfo()
bool ExludeFunction(bool includeAllParameters)
bool HasGetProperty(list<Com::FuncInfo >& fi)
bool HasProperty(list<Com::FuncInfo >& fi)
bool HasPutProperty(list<Com::FuncInfo >& fi)
bool IsDataTypeObject(Com::FuncParam& param)
bool IsEnumUserDefined(Com::FuncParam& param)
bool IsReturnedValueBool()
bool RequiresConversion(int datatype)
bool operator <(const FuncInfo& fi)
static bool IsIDispatchFunction(const wchar_t* functionName)
static bool IsIUnknownFunction(const wchar_t* functionName)
static void GetParamTypeText(bool isReturn, const wchar_t* nameSpace, bool earlyBinding, bool isIDispatch, Com::FuncParam& param, wstring& output)
static wchar_t* GetFuncCallConvText(int callConv)
static wchar_t* GetFuncTypeText(int dispatch_type)
static wchar_t* GetParamTypeText(WORD vt)
static wchar_t* GetParamTypeText(WORD vt, bool cppTypes)
static wchar_t* GetVariantText(WORD vt)
static wchar_t* GetVariantVT(WORD vt)
void Clear()
void RenderFuncDeclaration(const wchar_t* nameSpace, bool earlyBinding, bool isIDispatch, bool includeAllParameters, wstring& output)
void RenderFuncDefinition(const wchar_t* nameSpace, bool earlyBinding, bool isIDispatch, const wchar_t* className, bool includeAllParameters, wstring& output)
void RenderParameter(int paramIndex, wstring& output)
void RenderProperty(const wchar_t* nameSpace, bool earlyBinding, bool isIDispatch, list<Com::FuncInfo >& fi, wstring& output)
void RenderReturnedValue(const wstring& returnParamText, wstring& output)
wchar_t* GetFuncTypeText()
~ FuncInfo()

FuncParam
FuncParam()
static bool AreCompatible(Com::FuncParam& param1, Com::FuncParam& param2)
void Clear()
~ FuncParam()

LifeCycle: It provides support to implement IUnknown
LifeCycle()
int Dec()
int Inc()
~ LifeCycle()

Param
Param()
Param(int count)
_variant_t& operator [ ](long index)
bool Create(int count)
const _variant_t& operator [ ](long index)const
int GetRequiredParamCount()
void PrepareInvoke(int dispatch_type)
void SetMissing(int index)
~ Param()

PersistPropertyBag
HRESULT Create(vector<Property >& properties, IUnknownPtr& unknown)
PersistPropertyBag()
~ PersistPropertyBag()

ProgInfo: Represents a registry key: HKEY_CLASSES_ROOT\CLSID
ProgInfo()
bool GetClsid(CLSID& output)
Converts the clsid string to CLSID
bool operator <(const ProgInfo& input)const
~ ProgInfo()

Property
Property()
Property(const wstring& name, const wstring& value)
~ Property()

TypeInfoData: It stores data for the ITypeInfo interface
TypeInfoData()
void Clear()
~ TypeInfoData()

TypeLibData: It stores data for the ITypeLib interface
TypeLibData()
bool IsNameValid(const wstring& name)
void Clear()
~ TypeLibData()

Container: A control to host an ActiveX control
COLORREF GetBackColor()
COLORREF GetTextColor()
Container()
HRESULT Activate()
HRESULT Activate(vector<Property >& properties)
HRESULT DoVerb(long verb)
HRESULT OleObjectQueryInterface(REFIID riid, void* * pvvObject)
bool GetAllowResize()
bool GetUserMode()
bool IsVisible()
static void DisplayInterfaceFunctions(HWND hWnd, Com::Object& object)
virtual void SetBackColor(COLORREF color)
virtual void SetTextColor(COLORREF color)
virtual void SetUserMode(bool userMode)
void Delete(void)
void SetAllowResize(bool resizable)
void SetVisible(bool visible)
void UpdateSize()
~ Container()
COLORREF BackColor
COLORREF TextColor
bool UserMode
bool Visible
bool AllowResize
© Copyright 2000-2019 selo. All Rights Reserved. Sep 05 2019.