2.2.44 TYPEATTR
The TYPEATTR structure is used by an ITypeInfo server to describe a type, as specified in section 3.7.4.1.
-
typedef struct tagTYPEATTR { GUID guid; LCID lcid; DWORD dwReserved1; DWORD dwReserved2; DWORD dwReserved3; LPOLESTR lpstrReserved4; ULONG cbSizeInstance; TYPEKIND typekind; WORD cFuncs; WORD cVars; WORD cImplTypes; WORD cbSizeVft; WORD cbAlignment; WORD wTypeFlags; WORD wMajorVerNum; WORD wMinorVerNum; TYPEDESC tdescAlias; DWORD dwReserved5; WORD wReserved6; } TYPEATTR, *LPTYPEATTR;
guid: MUST be set to the GUID that is associated with the type, or to IID_NULL, if the type was not declared with the [uuid] attribute (see section 2.2.49.2).
lcid: MUST be set to the locale ID of the type's member names and documentation strings (see section 2.2.49.2).
dwReserved1: MUST be set to 0, and MUST be ignored on receipt.
dwReserved2: MUST be set to -1, and MUST be ignored on receipt.
dwReserved3: MUST be set to -1, and MUST be ignored on receipt.
lpstrReserved4: MUST be set to NULL, and MUST be ignored on receipt.
cbSizeInstance: MUST be set to a value that is specified by the value of typekind.
Value of typekind |
Value of cbSizeInstance |
---|---|
TKIND_COCLASS |
MUST be set to the system pointer size (see section 3.7.1.2). |
TKIND_DISPATCH |
MUST be set to the system pointer size (see section 3.7.1.2). |
TKIND_INTERFACE |
MUST be set to the system pointer size (see section 3.7.1.2). |
TKIND_MODULE |
MUST be set to 2. |
TKIND_ENUM |
MUST be set to an implementation-specific value<23> that specifies the size of an integer. |
TKIND_UNION |
MUST be set to an implementation-specific value<24> that specifies the size of its largest element. |
TKIND_RECORD |
MUST be set to an implementation-specific value<25> that specifies the size in bytes, of the structure. |
TKIND_ALIAS |
MUST be set to an implementation-specific value<26> that specifies the size, in bytes, of the predefined type for which this type is an alias. |
typekind: MUST be set to a value of the TYPEKIND enumeration, as specified in section 2.2.17.
cFuncs: MUST be set to a value specified by the value of typekind.
Value of typekind |
Value of cfuncs |
---|---|
TKIND_COCLASS |
MUST be set to 0. |
TKIND_DISPATCH |
MUST be set to the number of elements in the dispatch method table, as specified in section 3.7.1.2. |
TKIND_INTERFACE |
MUST be set to the number of elements in the method table, as specified in section 3.7.1.2. |
TKIND_MODULE |
MUST be set to the number of elements in the method table, as specified in section 3.7.1.2. |
TKIND_ENUM |
MUST be set to 0. |
TKIND_UNION |
MUST be set to 0. |
TKIND_RECORD |
MUST be set to 0. |
TKIND_ALIAS |
MUST be set to 0. |
cVars: MUST be set to the number of elements in the data member table, as specified in section 3.7.1.2.
cImplTypes: MUST be set to the number of elements in the interface table, as specified in section 3.7.1.2.
cbSizeVft: MUST be set to a value specified by the value of typekind.
Value of typekind |
Value of cbSizeVft |
---|---|
TKIND_COCLASS |
MUST be set to 0. |
TKIND_DISPATCH |
MUST be set to the system pointer size value (see section 2.2.45) multiplied by seven. |
TKIND_INTERFACE |
MUST be set to the system pointer size value multiplied by the number of methods that are defined by the interface and all its inherited interfaces. |
TKIND_MODULE |
MUST be set to 0. |
TKIND_ENUM |
MUST be set to 0. |
TKIND_UNION |
MUST be set to 0. |
TKIND_RECORD |
MUST be set to 0. |
TKIND_ALIAS |
MUST be set to 0. |
cbAlignment: MUST be set to 0 or to an implementation-specific positive value.<27>
wTypeFlags: MUST be either a combination of the TYPEFLAGS bit flags that are specified in section 2.2.16, or 0.
wMajorVerNum: MUST be set to the major version number of the automation scope that is associated with the ITypeLib server, as specified in section 2.2.49.2.
wMinorVerNum: MUST be set to the minor version number of the automation scope that is associated with the ITypeLib server, as specified in section 2.2.49.2.
tdescAlias: MUST contain a TYPEDESC (section 2.2.37) that describes the predefined type for which this type is an alias, if typekind is set to TKIND_ALIAS. Otherwise, MUST contain a TYPEDESC with the vt field set to VT_EMPTY.
dwReserved5: MUST be set to 0, and MUST be ignored on receipt.
wReserved6: MUST be set to 0, and MUST be ignored on receipt.