2.3.4.2.2.3 REFERENCECONTROL Record

Specifies a reference to a twiddled type library and its extended type library.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

Id

SizeTwiddled

...

SizeOfLibidTwiddled

...

LibidTwiddled (variable)

...

Reserved1

Reserved2

NameRecordExtended (variable)

...

Reserved3

SizeExtended

...

SizeOfLibidExtended

...

LibidExtended (variable)

...

Reserved4

Reserved5

OriginalTypeLib (16 bytes)

...

...

...

Cookie

...

Id (2 bytes): An unsigned integer that specifies the identifier for this record. MUST be 0x002F.

SizeTwiddled (4 bytes): An unsigned integer that specifies the sum of the size in bytes of SizeOfLibidTwiddled, LibidTwiddled, Reserved1, and Reserved2. MUST be ignored on read.

SizeOfLibidTwiddled (4 bytes): An unsigned integer that specifies the size in bytes of LibidTwiddled.

LibidTwiddled (variable): An array of SizeOfLibidTwiddled bytes. SHOULD be "*\G{00000000-0000-0000-0000-000000000000}#0.0#0##" (case-sensitive). MAY<8> specify a twiddled type library’s identifier. The identifier MUST conform to the ABNF grammar LibidReference (section 2.1.1.8). MUST contain MBCS characters encoded using the code page specified in PROJECTCODEPAGE (section 2.3.4.2.1.5). MUST NOT contain null characters.

Reserved1 (4 bytes): MUST be 0x00000000. MUST be ignored.

Reserved2 (2 bytes): MUST be 0x0000. MUST be ignored.

NameRecordExtended (variable): A REFERENCENAME Record (section 2.3.4.2.2.2) that specifies the name of the extended type library. This field is optional.

Reserved3 (2 bytes): MUST be 0x0030. MUST be ignored.

SizeExtended (4 bytes):  An unsigned integer that specifies the sum of the size in bytes of SizeOfLibidExtended, LibidExtended, Reserved4, Reserved5, OriginalTypeLib, and Cookie. MUST be ignored on read.

SizeOfLibidExtended (4 bytes): An unsigned integer that specifies the size in bytes of LibidExtended.

LibidExtended (variable): An array of SizeOfLibidExtended bytes that specifies the extended type library’s identifier. MUST contain MBCS characters encoded using the code page specified in PROJECTCODEPAGE (section 2.3.4.2.1.5). MUST NOT contain null characters. MUST conform to the ABNF grammar in LibidReference (section 2.1.1.8).

Reserved4 (4 bytes): MUST be 0x00000000. MUST be ignored.

Reserved5 (2 bytes): MUST be 0x0000. MUST be ignored.

OriginalTypeLib (16 bytes):  A GUID that specifies the Automation type library the extended type library was generated from.

Cookie (4 bytes):  An unsigned integer that specifies the extended type library’s cookie. MUST be unique for each REFERENCECONTROL (section 2.3.4.2.2.3) in the VBA project with the same OriginalTypeLib.