2.2.3.1 CPMConnectIn

The CPMConnectIn message begins a session between the protocol client and protocol server.

The format of the CPMConnectIn message that follows the header is shown in the following diagram.


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

_iClientVersion

_fClientIsRemote

_cbBlob1

_paddingcbdBlob2 (variable)

...

_cbBlob2

_padding

...

...

MachineName (variable)

...

UserName (variable)

...

_paddingcPropSets (variable)

...

cPropSets

PropertySets (variable)

...

_paddingExtPropset (variable)

...

cExtPropSet

ExtPropertySets (variable)

...

_iClientVersion (4 bytes): A 32-bit integer indicating whether the protocol client is assumed capable of handling 64-bit offsets in CPMGetRowsOut messages<7>.and whether the protocol client is assumed capable of handling the _dwQueryID field in the CRowsetProperties structure. The value for this field MUST be set to one of the following values.

Value

Meaning

0x00000102

The protocol client is not capable of handling 64-bit offsets in CPMGetRowsOut messages and is not capable of handling the _dwQueryID field in the CRowsetProperties structure.

0x00010102

The protocol client is capable of handling 64-bit offsets in CPMGetRowsOut messages and is not capable of handling the _dwQueryID field in the CRowsetProperties structure.

0x00000103

The protocol client is not capable of handling 64-bit offsets in CPMGetRowsOut messages and is capable of handling the _dwQueryID field in the CRowsetProperties structure.

0x00010103

The protocol client is capable of handling 64-bit offsets in CPMGetRowsOut messages and is capable of handling the _dwQueryID in the CRowsetProperties structure.

_fClientIsRemote (4 bytes): A Boolean value indicating whether the protocol client is running on a different computer than the protocol server.

_cbBlob1 (4 bytes): A 32-bit unsigned integer indicating the size in bytes of the cPropSets and PropertySets fields, combined.

_paddingcbdBlob2 (variable): This field MUST be 0 to 7 bytes in length. The length of this field MUST be such that the byte offset from the beginning of the message to the first structure contained in the _cbBlob2 field is a multiple of 8 bytes. The value of the bytes can be any arbitrary value, and MUST be ignored by the receiver.

_cbBlob2 (4 bytes): A 32-bit unsigned integer indicating the size in bytes of the cExPropSet and ExtPropertySets fields, combined.

_padding (12 bytes): 12 bytes of padding. MUST be ignored.

MachineName (variable): The computer name of the protocol client. The name string MUST be a null-terminated array of less than 512 Unicode characters, including the NULL terminator.

UserName (variable): A string that represents the user name of the person who is running the application that invoked this protocol. The name string MUST be a null-terminated array of fewer than 512 Unicode characters when concatenated with MachineName.

_paddingcPropSets (variable): This field MUST be 0 to 7 bytes in length. The number of bytes MUST be the number required to make the byte offset of the cPropSets field a multiple of 8 from the beginning of the message that contains this structure. The value of the bytes can be any arbitrary value, and MUST be ignored by the receiver.

cPropSets (4 bytes): A 32-bit unsigned integer indicating the number of CDbPropSet structures following this field. This field MUST be set to 0x00000001.

PropertySets (variable): An array of CDbPropSet structures. The number of elements in this array MUST be equal to cPropSets.

_paddingExtPropset (variable): This field MUST be 0 to 7 bytes in length. The number of bytes MUST be the number required to make the byte offset of the cExtPropSets field from the beginning of the message that contains this structure equal a multiple of 8. The value of the bytes can be any arbitrary value, and MUST be ignored by the receiver.

cExtPropSet (4 bytes): A 32-bit reserved field. MUST be set to 0x00000001.

ExtPropertySets (variable): An array of CDbPropSet structures. The number of elements in this array MUST be equal to cExtPropSet.