Common Data Types
The following data types are commonly used when transferring data across the wire. All multiple-byte numbers are transmitted by sending the least significant byte first, unless otherwise indicated.
Data Types
Value | Meaning |
---|---|
BOOL | A 32-bit field that is set to 1 to indicate TRUE, or 0 to indicate FALSE. |
BOOLEAN | An 8-bit field that is set to 1 to indicate TRUE, or 0 to indicate FALSE. |
BYTE | An 8-bit block of data. |
CHAR | An 8-bit block of data that typically contains a Windows (ANSI) character. |
DWORD | A 32-bit unsigned integer (range: 0 through 4294967295 decimal). Because a DWORD is unsigned, its first (most significant) bit is not reserved for signing. |
GUID | A globally unique identifier. This data type exposes the GUID structure (documented in the Platform SDK), which contains the following:
|
HRESULT | A 32-bit value that is used to describe an error or warning and contains the following:
|
INT | A 32-bit signed integer (range: -2147483648 through 2147483647 decimal). |
LARGE_INTEGER | A 64-bit signed integer (range: -2305843009213693952 through 2305843009213693952 decimal). |
LONG | A 32-bit signed integer (range: -2147483648 through 2147483647 decimal). |
LONGLONG | A 64-bit signed integer (range: -2305843009213693952 through 2305843009213693952 decimal). |
LONG_PTR | A 32-bit signed LONG for pointer precision. Use when casting a pointer to a LONG to perform pointer arithmetic. |
LPBYTE | A 32-bit pointer to a BYTE. |
LPCSTR | A 32-bit pointer to a null-terminated string of 8-bit Windows (ANSI) characters. |
LPCWSTR | A 32-bit pointer to a null-terminated string of 16-bit Unicode characters. |
LPDWORD | A 32-bit pointer to a DWORD. |
LPSTR | A 32-bit pointer to a null-terminated string of 8-bit Windows (ANSI) characters. |
LPWSTR | A 32-bit pointer to a null-terminated string of 16-bit Unicode characters. |
OLD_LARGE_INTEGER | A data type that exposes an OLD_LARGER_INTEGER structure, which contains the following:
|
PWSTR | A 32-bit pointer to a null-terminated string of 16-bit Unicode characters. |
PUCHAR | A 32-bit pointer to an unsigned CHAR. |
PULONG | A 32-bit pointer to a ULONG. |
SHORT | A 16-bit integer (range: -32768 through 32767 decimal). The first (most significant) bit is the signing bit. |
TCHAR | A character that is a WCHAR if Unicode is defined, or a CHAR otherwise. |
TIME | A 128-bit integer that represents an absolute time or a time interval. Times are specified in units of 100 milliseconds. This data type exposes the TIME structure, which contains the following:
A positive value expresses an absolute time, where the base time is the beginning of the year 1601 A.D. in the Gregorian calendar. A negative value expresses a time interval relative to some base time, typically the current time. |
UCHAR | An 8-bit integer block of data (range: 0 through 255 decimal). Because a UCHAR is unsigned, its first (most significant) bit is not reserved for signing. |
ULONG | A 32-bit unsigned integer (range: 0 through 4294967296 decimal). Because a ULONG is unsigned, its first (most significant) bit is not reserved for signing. |
ULONGLONG | A 64-bit unsigned integer (range: 0 through to 18446744073709551616 decimal). Because a ULONGLONG is unsigned, its first (most significant) bit is not reserved for signing. |
ULONG_PTR | A 32-bit pointer to a ULONG. |
UNICODE_STRING | A complex data type (documented in the Platform SDK) that consists of the following:
|
USHORT | A 16-bit unsigned integer (range: 0 through 65536 decimal). Because a USHORT is unsigned, its first (most significant) bit is not reserved for signing. |
UTIME | A 64-bit unsigned integer that represents the number of seconds since January 1, 1970, 00:00:00. For example, noon on January 1, 1970, is represented as 43200. |
UUID | A universally unique identifier. This data type exposes the UUID structure (documented in the Platform SDK), which contains the following:
|
VARIANT | An Automation data type (documented in the Platform SDK) that contains any other automation data type. |
WCHAR | A 16-bit Unicode character. |
wchar_t | A 16-bit Unicode character for use with the MIDL compiler. |
WORD | A 16-bit unsigned integer (range: 0 through 65535 decimal). Because a WORD is unsigned, its first (most significant) bit is not reserved for signing. |