8#if !defined(OCF_AUTODEFS_H)
12#if defined(BI_HAS_PRAGMA_ONCE)
21#if !defined(_OLECTL_H_)
22# if defined(__BIVBX_H) && !defined(NO_VBX_PICTURES)
23# error BIVBX.H LPPICTURE is incompatible with OLECTL.H - define NO_VBX_PICTURES
25# define NO_VBX_PICTURES
38#if !defined(_AUTOCLASS)
60 const std::type_info& dst);
81 void Notify(
int offset,
const std::type_info& typeInfo);
92 reinterpret_cast<ObjectPtr>(
dynamic_cast<T*
>(
reinterpret_cast<B*
>(from)));
104#if defined(BI_COMP_BORLANDC)
132 static void Raise(TError err);
150 const std::type_info& typeInfo,
TAggregator aggregator=0);
153 short CountCommands();
158 TAutoSymbol* FindFunction(
unsigned index, MEMBERID& retId);
159 TAutoSymbol* FindVariable(
unsigned index, MEMBERID& retId);
167 const std::type_info& GetTypeInfo()
const;
170 unsigned long GetHelpId()
const;
171 unsigned short GetTypeFlags()
const;
172 int GetImplTypeFlags()
const;
173 unsigned short GetCoClassFlags()
const;
189 struct TAutoClassRef {
194 static struct TClassList {
195 int CountAutoClasses();
196 TAutoClassRef* MergeAutoClasses(TAutoClassRef* array);
202 TExtLink(TClassList* list, HINSTANCE module);
209 TAutoClass* NextClass;
210 friend struct TExtLink;
211 friend struct TClassList;
241# if defined(BI_COMP_BORLANDC)
247 operator double() {
return Date; }
257 operator CY& () {
return *
reinterpret_cast<CY*
>(
this);}
430 bool IsByRef()
const;
431 bool IsArray()
const;
432 bool IsIterator()
const;
433 bool IsTerminator()
const;
461#if defined(BI_COMP_BORLANDC) && !defined(__clang__)
462 #if sizeof(TObjectDescBase) > 8
463 #error Sizeof TObjectDescBase must be 8 bytes - it is a TAutoVal union member
479 { Object = obj; Class = &classobj; Destruct = destruct; }
502 TAutoString& operator =(
const char* s) {S = S->Assign(s);
return *
this;}
504 TAutoString& operator =(
char* s) {S = S->Assign(s);
return *
this;}
505 TAutoString& operator =(
const wchar_t* s) {S = S->Assign(s);
return *
this;}
506 TAutoString& operator =(
wchar_t* s) {S = S->Assign(s);
return *
this;}
523# if defined(BI_COMP_BORLANDC)
591 TAutoVal(ULONG_PTR v){ *
this = v; };
596 operator unsigned char();
597 operator signed char();
599 operator unsigned char*();
600 operator signed char*();
604 operator unsigned int();
607 operator unsigned short();
608 operator unsigned short*();
611 operator unsigned long();
612 operator unsigned long*();
628 operator IUnknown*();
629 operator IDispatch*();
630 operator IPictureDisp*();
631 operator IFontDisp*();
632 operator IPictureDisp&();
633 operator IFontDisp&();
634 operator IUnknown&();
635 operator IDispatch&();
641 operator SAFEARRAY*();
642 operator IUnknown**();
643 operator IDispatch**();
645 operator LARGE_INTEGER();
646 operator ULARGE_INTEGER();
648 operator ULONG_PTR();
654 void operator =(
unsigned char i);
655 void operator =(
signed char i);
656 void operator =(
char i);
657 void operator =(
unsigned char* p);
658 void operator =(
signed char* p);
659 void operator =(
char* p);
660 void operator =(
const char* p);
661 void operator =(
int i);
662 void operator =(
int* p);
663 void operator =(
unsigned int i);
664 void operator =(
unsigned int* p);
665 void operator =(
unsigned short i);
666 void operator =(
unsigned short* p);
667 void operator =(
long i);
668 void operator =(
long* p);
669 void operator =(
unsigned long i);
670 void operator =(
unsigned long* p);
671 void operator =(
short i);
672 void operator =(
short* p);
673 void operator =(
float i);
674 void operator =(
float* p);
675 void operator =(
double i);
676 void operator =(
double* p);
677 void operator =(
void* p);
687 void operator =(IUnknown* ifc);
688 void operator =(IDispatch* ifc);
689 void operator =(IPictureDisp* ifc);
690 void operator =(IFontDisp* ifc);
691 void operator =(VARIANT& v);
694 void operator =(
const TNoArg& n);
697 void operator =(BSTR* p);
698 void operator =(
TBSTR* p);
699 void operator =(IUnknown** p);
700 void operator =(IDispatch** p);
702 void operator =(LARGE_INTEGER v);
703 void operator =(ULARGE_INTEGER v);
704 void operator =(SAFEARRAY* p);
706 void operator =(ULONG_PTR v);
711 int GetDataType()
const;
716 HRESULT ChangeType(VARTYPE type,
TAutoVal* src = 0);
728 SAFEARRAY* GetArray();
736 unsigned short Reserved1;
737 unsigned short Reserved2;
738 unsigned short Reserved3;
792 void ConvRef(
int type);
794# if defined(BI_COMP_BORLANDC)
801#if defined(BI_COMP_BORLANDC) && !defined(__clang__)
802# if sizeof(TAutoVal) != sizeof(VARIANT)
803# Error Sizeof(TAutoVal) must match Sizeof(VARIANT)
815 enum {SetValue = -3};
854 virtual bool Validate();
855 virtual void Execute();
856 virtual long Report();
858 virtual void Transfer(TAutoTransfer& x);
863 typedef LPCTSTR (*TErrorMsgHook)(
long errCode);
864 static TErrorMsgHook SetErrorMsgHook(TErrorMsgHook callback);
867 static TCommandHook SetCommandHook(TCommandHook callback);
871 static LPCTSTR LookupError(
long errCode);
872 void SetFlag(
int mask);
873 void ClearFlag(
int mask);
874 bool TestFlag(
int mask);
928 IUnknown* outer = 0) = 0;
930 IUnknown* outer = 0) = 0;
980 operator IDispatch*();
996 {
return GetOuter()->QueryInterface(
iid, iface);}
1001 HRESULT QueryObject(
const IID &
iid,
void** iface);
1010 HRESULT
_IFUNC GetTypeInfoCount(
unsigned int* pctinfo);
1011 HRESULT
_IFUNC GetTypeInfo(
unsigned int itinfo, LCID lcid,
1012 ITypeInfo** pptinfo);
1013 HRESULT
_IFUNC GetIDsOfNames(
const IID & riid, OLECHAR** rgszNames,
1016 HRESULT
_IFUNC Invoke(DISPID dispidMember,
const IID & riid, LCID lcid,
1017 unsigned short wFlags,
1018 DISPPARAMS* pdispparams,
1019 VARIANT* pvarResult,
1020 EXCEPINFO* pexcepinfo,
1021 unsigned int* puArgErr);
1025 HRESULT
_IFUNC GetTypeAttr(TYPEATTR** pptypeattr);
1026 HRESULT
_IFUNC GetTypeComp(ITypeComp** pptcomp);
1027 HRESULT
_IFUNC GetFuncDesc(
unsigned int index, FUNCDESC** ppfuncdesc);
1028 HRESULT
_IFUNC GetVarDesc(
unsigned int index, VARDESC** ppvardesc);
1029 HRESULT
_IFUNC GetNames(MEMBERID memid, BSTR* rgbstrNames,
1030 unsigned int cMaxNames,
1031 unsigned int* pcNames);
1032 HRESULT
_IFUNC GetRefTypeOfImplType(
unsigned int index, HREFTYPE* phreftype);
1033 HRESULT
_IFUNC GetImplTypeFlags(
unsigned int index,
int* pimpltypeflags);
1034 HRESULT
_IFUNC GetIDsOfNames(OLECHAR** rgszNames,
1035 unsigned int cNames,
1037 HRESULT
_IFUNC Invoke(
void* pvInstance, MEMBERID memid,
1038 unsigned short wFlags,
1039 DISPPARAMS *pdispparams,
1040 VARIANT *pvarResult,
1041 EXCEPINFO *pexcepinfo,
1042 unsigned int *puArgErr);
1043 HRESULT
_IFUNC GetDocumentation(MEMBERID memid,
1045 BSTR* pbstrDocString,
1047 BSTR* pbstrHelpFile);
1048 HRESULT
_IFUNC GetDllEntry(MEMBERID memid, INVOKEKIND invkind,
1051 unsigned short* pwOrdinal);
1052 HRESULT
_IFUNC GetRefTypeInfo(HREFTYPE hreftype,
1053 ITypeInfo** pptinfo);
1054 HRESULT
_IFUNC AddressOfMember(MEMBERID memid, INVOKEKIND invkind,
1056 HRESULT
_IFUNC CreateInstance(IUnknown* punkOuter,
const IID & riid,
1058 HRESULT
_IFUNC GetMops(MEMBERID memid, BSTR* pbstrMops);
1059 HRESULT
_IFUNC GetContainingTypeLib(ITypeLib** pptlib,
1061 void _IFUNC ReleaseTypeAttr(TYPEATTR* ptypeattr);
1062 void _IFUNC ReleaseFuncDesc(FUNCDESC* pfuncdesc);
1063 void _IFUNC ReleaseVarDesc(VARDESC* pvardesc);
1064 HRESULT
_IFUNC GetFuncDocFromIndex(
unsigned index,
1065 BSTR* retName, BSTR* retDoc,
1070 HRESULT
_IFUNC GetVarDocFromIndex(
unsigned index,
1071 BSTR* retName, BSTR* retDoc,
1075 BSTR* retName, BSTR* retDoc,
1094 operator IDispatch*();
1100 HRESULT
_IFUNC GetTypeInfoCount(
unsigned int* pctinfo);
1101 HRESULT
_IFUNC GetTypeInfo(
unsigned int itinfo, LCID lcid,
1102 ITypeInfo** pptinfo);
1103 HRESULT
_IFUNC GetIDsOfNames(
const IID & riid, OLECHAR** rgszNames,
1104 unsigned int cNames, LCID lcid,
1106 HRESULT
_IFUNC Invoke(DISPID dispidMember,
const IID & riid, LCID lcid,
1107 unsigned short wFlags,
1108 DISPPARAMS* pdispparams,
1109 VARIANT* pvarResult,
1110 EXCEPINFO* pexcepinfo,
1111 unsigned int* puArgErr);
1131 operator T*() {
return P;}
1132 operator T&() {
return *
P;}
1149template<
class T>
void
1189 HRESULT
_IFUNC QueryInterface(
const GUID &
iid,
void** pif);
1190 unsigned long _IFUNC AddRef();
1191 unsigned long _IFUNC Release();
1192 HRESULT
_IFUNC Next(
unsigned long count, VARIANT* retvals,
1193 unsigned long* retcount);
1194 HRESULT
_IFUNC Skip(
unsigned long count);
1196 HRESULT
_IFUNC Clone(IEnumVARIANT** retiter);
1208 operator IUnknown*();
1248 operator VARIANT* () {
return (VARIANT* )GetArgs();}
1249 operator unsigned int() {
return Count;}
1286 void Bind(IUnknown* obj);
1287 void Bind(IUnknown& obj);
1288 void Bind(
const GUID& guid);
1289 void Bind(LPCTSTR progid);
1291 void Bind(IDispatch* obj);
1292 void Bind(IDispatch& obj);
1293 void Unbind(
bool release =
true);
1302 static IDispatch* GetObject(LPCTSTR progid);
1310 operator IDispatch*();
1311 operator IDispatch&();
1316 long Lookup(LPCTSTR name);
1317 void Lookup(LPCTSTR names,
long* ids,
unsigned count);
1333 operator long*() {
return &Id;}
1334 operator unsigned() {
return 0;}
1342 operator long*() {
return Ids;}
1343 operator unsigned() {
return N;}
1349 void Unbind() {
if (Iterator) Iterator->Release(); Iterator=0; Clear();}
1389 return *(
GetArgs()+(index ? Count+1-index : 0));
1394inline TAutoProxy::operator IDispatch&()
1406inline TAutoProxy::operator IDispatch*()
1417 if (release &&
That)
1508 return (
Attr&mask)? true :
false;
1556 --*
S;
S = val;
return *
this;
1581 ::VariantCopy((VARIANT*)
this, (VARIANT*)&src);
1590 ::VariantCopy((VARIANT*)
this, (VARIANT*)&src);
1594inline TAutoVal::operator
unsigned long(){
return (
unsigned long)
operator long();}
1600inline TAutoVal::operator int() {
return operator long(); }
1601inline TAutoVal::operator
unsigned int() {
return (
unsigned long)(long)*
this;}
1602inline TAutoVal::operator
int*() {
return (
int*)
operator long*();}
1605inline TAutoVal::operator
signed char() {
return operator unsigned char();}
1606inline TAutoVal::operator char() {
return operator unsigned char();}
1607inline TAutoVal::operator
char*() {
return (
char*)
operator unsigned char*();}
1608inline TAutoVal::operator
signed char*() {
return (
signed char*)
operator unsigned char*();}
1692 memset(
this, 0,
sizeof(*
this));
1703 ::VariantClear((VARIANT*)
this);
1736 return ::VariantChangeType((VARIANT*)
this, src ? (VARIANT*)src : (VARIANT*)
this, 0, varType);
1742 return (vt &
atByRef) ? true :
false;
1802inline TServedObject::operator IDispatch*()
1805 return (IDispatch*)
this;
1810inline TDispatch::operator IDispatch*()
1813 return (IDispatch*)
this;
1828 {
return TAutoCommand_ErrorLookup ? TAutoCommand_ErrorLookup(errCode) : 0;}
1834 : Count(count) {
Type = short(type +
atEnum); }
1836template <
class T>
inline
1838:
TAutoEnum(symcount, type), Table(table) {}
1842template <
class T>
bool
1846 const _TCHAR* str = stringRef;
1849 for (
int i = 0; i < Count; i++) {
1850 if (Table[i].
Name.Compare(str, langId) == 0) {
1851 numVal = Table[i].
Val;
1861template <
class T>
bool
1866 for (
int i = 0; i < Count; i++) {
1867 if (Table[i].Val == val) {
1868 numVal = Table[i].Name.Translate(langId);
1885 LPCTSTR str = numVal.
StrVal();
1887 for (
int i = 0; i < Count; i++) {
1888 if (lstrcmp(Table[i].Val, str) == 0) {
1889 numVal = Table[i].Name.Translate(langId);
1902inline TAutoIterator::operator IUnknown*() {RefCnt++;
return this;}
1933 if (!TAutoCommand_InvokeHook || TAutoCommand_InvokeHook(*
this))
1963 TAutoCommand_ErrorLookup = callback;
1970 TAutoCommand_InvokeHook = callback;
1974# if defined(BI_COMP_BORLANDC)
#define PRECONDITION(condition)
short CommandCount
command count including bases, 0 if uncounted
bool AutoIds
generate ID's automatically if true (default)
TAutoSymbol * ClassSymbol
pointer to class symbol (terminator)
unsigned short GetCoClassFlags() const
int GetImplTypeFlags() const
TAutoSymbol * GetTable() const
TAggregator Aggregator
aggregator function for C++ COM classes
LPCTSTR GetDoc(owl::TLangId lang=owl::TLocaleString::UserDefaultLangId) const
TAutoSymbol * GetClassSymbol() const
unsigned long GetHelpId() const
IUnknown & Aggregate(ObjectPtr obj, TUnknown &inner)
TAutoSymbol * Table
pointer to array of symbol entries
short VariableCount
number of symbols exposed as typelib variables
TAggregator GetAggregator() const
TAutoCommandBuildDtr GetDestructor() const
short FunctionCount
number of symbols exposed as typelib functions
const std::type_info & TypeInfo
for validating type of data pointers
unsigned short GetTypeFlags() const
const std::type_info & GetTypeInfo() const
LPCTSTR GetName(owl::TLangId lang=owl::TLocaleString::UserDefaultLangId) const
Automation abstract base class for command objects.
virtual TAutoCommand * Undo()
void Fail(TXAuto::TError)
virtual TAutoCommand & Invoke()
static LPCTSTR LookupError(long errCode)
virtual int Record(TAutoStack &q)
LPCTSTR(* TErrorMsgHook)(long errCode)
static TCommandHook SetCommandHook(TCommandHook callback)
virtual void Return(TAutoVal &v)
virtual void Transfer(TAutoTransfer &x)
void SetSymbol(TAutoSymbol *sym)
TAutoSymbol * GetSymbol()
bool(* TCommandHook)(TAutoCommand &cmdObj)
static TErrorMsgHook SetErrorMsgHook(TErrorMsgHook callback)
Object responsible for creating automation COM object.
virtual TUnknown * CreateObject(TObjectDescriptor objDesc, IUnknown *outer=0)=0
virtual void Attach(TServedObject &obj)
virtual IDispatch * CreateDispatch(TObjectDescriptor objDesc, IUnknown *outer=0)=0
virtual void Detach(TServedObject &obj)
void Notify(int offset, const std::type_info &typeInfo)
int Count
length of this symbol table
virtual bool Convert(TAutoVal &txtVal, TAutoVal &numVal)=0
virtual bool Convert(TAutoVal &numVal, owl::TLangId langId)=0
TAutoEnum(int count, int type)
bool Convert(TAutoVal &txtVal, TAutoVal &numVal)
TAutoEnumVal< T > * Table
pointer to array of symbol entries
TAutoEnumT(TAutoEnumVal< T > *table, int symcount, int type)
void Object(TAutoProxy &prx)
TAutoEnumerator(const TAutoEnumerator< T > &cpy)
automation collection iterator
virtual void Return(TAutoVal &v)=0
TAutoSymbol * GetSymbol()
virtual TAutoIterator * Copy()=0
void SetSymbol(TAutoSymbol *sym)
holders for C++ object pointers for automation conversions
void operator=(IDispatch &dp)
virtual TAutoVal * GetArgs()=0
TAutoVal & operator[](int index)
client C access proxy, base class
TAutoProxy(owl::TLangId lang)
void Unbind(bool release=true)
long Lookup(const long id)
void SetLang(owl::TLangId lang)
Automation argument stack abstraction.
TAutoSymbol * Symbol
Symbol of method/prop, args follow.
long ErrorCode
Set if TXAuto::xErrorStatus returned.
int CurrentArg
Index of last arg requested by operator[].
LPCTSTR ErrorMsg
Set if TXAuto::xErrorStatus returned.
Based on reference counted TString with added automation functionality.
TAutoString(const wchar_t *s)
TAutoString(const owl::tstring &s)
TAutoString(const TAutoString &src)
TAutoString(const char *s=0)
TAutoString(owl::TUString *s)
TAutoString(BSTR s, bool loan)
static TAutoType ClassInfo
TAutoString & operator=(const char *s)
Automation data element (same data as OLE/BASIC VARIANT)
owl::TUString * Holder
String holder sharing current BSTR.
struct ocf::TAutoVal::@47::@50 s
TAutoVal(unsigned char *p)
TAutoVal(IPictureDisp *ifc)
TAutoVal(TAutoCurrency *p)
bool GetObjDesc(TObjectDescriptor &)
LARGE_INTEGER hVal
Also support LARGE_INTEGER.
TAutoVal(LARGE_INTEGER v)
struct ocf::TAutoVal::@47::@49 p
bool IsRef() const
Is TAutoVal Object (i.e. VARIANT) passing data by reference.
TAutoVal * DereferenceVariant()
BSTR Val
< Added info when loaned BSTR ownership
LCID Locale
Unused 4 bytes for pointer types.
TAutoVal(unsigned short *p)
void SetLocale(TLocaleId)
TAutoVal(unsigned long *p)
void Copy(const TAutoVal ©)
TAutoVal(unsigned long i)
TAutoVal(const owl::tstring &s)
TAutoVal(IDispatch **ifc)
ULARGE_INTEGER uhVal
Also support ULARGE_INTEGER.
TAutoVal(TAutoCurrency i)
void * SetByRef(AutoDataType)
const TAutoVal & operator=(const TAutoVal &src)
HRESULT ChangeType(VARTYPE type, TAutoVal *src=0)
Converts TAutoVal/VARIANT to another type.
TAutoVal(ULARGE_INTEGER v)
TAutoVal(const TNoArg &n)
void * Val
< Added locale info for BSTR/IDispatch
TAutoVal(unsigned short i)
owl::TLangId GetLanguage() const
TAutoVal(unsigned int *p)
TAutoVal(unsigned char i)
TObjectDescBase ObjDesc
Temporary space for returning object.
TAutoClass * Class
class of which object is an instance
void * Object
pointer to C++ object instance, 0 if deleted
OC Control Event class for standard control events.
Class representing an embedded control within a document.
The TOcxView partner is a container (viewer) of a given (server/client) document.
TAppDescriptor & GetAppDesc()
TServedObject * GetAppObject()
TServedObject * AppObject
OLE object exposed for automated access of internal object.
owl::ulong _IFUNC AddRef()
TServedObjectCreator & GetCreator()
owl::ulong _IFUNC Release()
TServedObjectCreator & Creator
TServedObject * GetAppObject()
TObjectDescriptor::TDestruct Destruct
what to do with C++ object
void * Object
pointer to C++ object instance, 0 if deleted
const void * RootObject
pointer to object of most derived class
HRESULT _IFUNC QueryInterface(const GUID &iid, void **iface)
owl::TLangId ReqLang
language requested by caller
TAutoClass * Class
class of which object is an instance
Standard implementation of a controlling IUnknown for an object, to be inherited with other COM inter...
Automation exception object.
Reference to reference counted string object TUString Lightweight reference object consisting of a po...
System string (BSTR) encapsulation.
Privately used by TString to manage string pointers This is a reference counted union of various stri...
Derived from xmsg, TXBase is the base class for ObjectWindows and ObjectComponents exception-handling...
TLocaleString - localized name support.
Object Component Framework (COM encapsulation)
const owl::uint16 tfAutomation
const owl::uint16 tfAutoClassMask
const owl::uint16 tfControl
const owl::uint16 tfRestricted
IUnknown &(* TAggregator)(ObjectPtr obj, TUnknown &inner)
const owl::uint16 tfAppObject
TAutoCommand *(* TAutoCommandBuildDtr)(ObjectPtr obj, int attr)
const owl::uint16 tfImplFlagXfer
const owl::uint16 tfHidden
@ acVoidRet
pass NULL for return variant, not OLE2 flag
@ acPropGet
returns property value, same as OLE2
@ acPropSet
set property value, same as OLE2
@ acMethod
method call, same as OLE2
class _ICLASS TServedObject
const owl::uint16 tfNormal
TAutoCommand *(* TAutoCommandBuild)(ObjectPtr obj, int attr, TAutoStack &)
ObjectPtr(* TAutoSymTypeConvert)(ObjectPtr obj)
const void * MostDerived(const void *obj, const std::type_info &src)
const owl::uint16 atAutoClass
const owl::uint16 atSafeArray
AutoSymFlag
Attribute flags for automation symbols and command objects.
@ asClass
extension to another class symbol table
@ asIterator
iterator property (_NewEnum)
@ asHidden
not visible to normal browsing
@ asGetSet
can get or set property(...GET + ...SET)
@ asPersistent
property is persistent
@ asRequestEdit
sends OnRequest edit before change
@ asDisplayBind
user-display of bindable
@ asNotTerminator
any symbol except terminator with class info
@ asOleType
method or property exposed for OLE
@ asGet
returns property value (INVOKE_PROPERTYGET)
@ asBindable
sends OnChanged notification
@ asAnyCommand
any command: method, property get/set, build
@ asSet
set property value (INVOKE_PROPERTYSET)
@ asDefaultBind
this property only is the default (redundant)
@ asArgument
property returning an object
@ asMethod
method (same as OLE INVOKE_FUNC)
@ asBuild
contructor command (unsupported by OLE 2.01)
@ asFactory
for creating objects or class determination
const owl::uint16 tfPredeclared
const void * DynamicCast(const void *obj, const std::type_info &src, const std::type_info &dst)
TAutoCommand * AutoQuitBuild(ObjectPtr obj, int attr, TAutoStack &args)
const owl::uint16 tfLicensed
const owl::uint16 tfNonextensible
EXTERN_C const GUID IID_TServedObject
const owl::uint16 atByRef
TAutoIterator *(* TAutoIteratorBuild)(ObjectPtr obj, TAutoCreator &creator, IUnknown *owner, owl::TLangId lang)
struct _OCFCLASS TAutoTransfer
const owl::uint16 tfDefault
const owl::uint16 tfEventSource
AutoDataType
Automation datatypes and flags - same as OLE 2 definitions.
const owl::uint16 tfCoClassXfer
const owl::uint16 tfCanCreate
void SendObituary(const void *obj, const std::type_info &typeInfo)
Object Windows Library (OWLNext Core)
owl::uint16 TLangId
Holds a language ID, a predefined number that represents a base language and dialect.
BSTR SysAllocString(const char *str)
ObjectComponents fundamental definitions.
Low level OLE Utility class definitions.
#define DECLARE_COMBASES2(cls, i1, i2)
#define DECLARE_COMBASES1(cls, i1)
Definition of class TString, a flexible universal string envelope class.
The first TAutoVal item of TAutoArgs holds the return value.
virtual TAutoVal * GetArgs()
static TAutoType ClassInfo
static TAutoType ClassInfo
static TAutoType ClassInfo
static TAutoType ClassInfo
static TAutoType ClassInfo
static TAutoType ClassInfo
static TAutoType ClassInfo
static TAutoType ClassInfo
TAutoDispId(TAutoProxy *, long id)
TAutoDispId(TAutoProxy *prx, LPCTSTR name)
TAutoDispIds(TAutoProxy *prx, LPCTSTR names)
static TAutoType ClassInfo
static TAutoType ClassInfo
static TAutoType ClassInfo
owl::TLocaleString Name
Name of symbol, enumeration text.
T Val
Enumeration internal value.
static TAutoType ClassInfo
static TAutoType ClassInfo
static TAutoType ClassInfo
static TAutoType ClassInfo
static TAutoType ClassInfo
static TAutoType ClassInfo
static TAutoType ClassInfo
static TAutoType ClassInfo
owl::uint16 GetDataType() const
TAutoCommandBuildDtr BuildDtr
terminator only: destructor command builder
void * DefaultArg
asArgument: default value, extends to 8 bytes
void SetFlag(owl::uint16 mask)
short SymCount
asClass only: symbol count, 0 = uncounted yet
TAutoSymTypeConvert Convert
asFactory/asClass: function to perform cast
TAutoClass * GetClass() const
long DispId
reserved dispatch ID, if not 0
static TAutoCommandBuild InitAutoIterator(TAutoIteratorBuild f)
bool TestFlag(owl::uint16 mask) const
static TAutoCommandBuild InitTypeConvert(TAutoSymTypeConvert f)
TAutoIteratorBuild BuildIter
asIterator only: address of iterator builder
void ClearFlag(owl::uint16 mask)
owl::TLocaleString Name
name of symbol, initially untranslated
owl::uint32 Attr
attributes: enum AutoSymFlag, as???? (could be owl::uint16)
unsigned short TypeFlags
class symbol only (terminator)
owl::ulong HelpId
help context ID, not for asArgument
TAutoCommandBuild Build
asAnyCommand only: address of command builder
owl::uint16 GetFlags() const
owl::TLocaleString Doc
documentation string, initially untranslated
TAutoEnum * GetEnum() const
bool IsTerminator() const
static TAutoCommandBuild InitAutoDestructor(TAutoCommandBuildDtr f)
TAutoType * Type
pointer to class/type/enum descriptor
owl::uint16 GetType() const
static TAutoType ClassInfo
static TAutoType ClassInfo
static TAutoType ClassInfo
static TAutoType ClassInfo
Precursor to TServedObject containing object info.
const void * MostDerived()
TAutoClass * Class
class descriptor, contains type info
const void * Object
< ONLY for use when storing in TAutoVal union
TObjectDescriptor(const void *obj, TAutoClass &classobj, TDestruct destruct=Quiet)
@ Delete
automation object deletes the C++ object serviced
@ Quiet
behavior when an automation helper is freed
static ObjectPtr Cast(ObjectPtr from)
Undefined default template for dispatchers Template specialization is used to allow the compiler to l...
Designed to provide support for localized registration parameters, the TLocaleString Struct defines a...
static TLangId UserDefaultLangId
The user-defined default language identifier.
const tchar * Translate(TLangId lang)
translate string