Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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.