{"id":119,"date":"2010-04-17T23:00:08","date_gmt":"2010-04-18T08:00:08","guid":{"rendered":"\/blog\/?p=119"},"modified":"2023-09-21T09:39:22","modified_gmt":"2023-09-21T00:39:22","slug":"%ec%9c%88%eb%8f%84%ec%9a%b0-%eb%8d%b0%ec%9d%b4%ed%84%b0-%ed%83%80%ec%9e%85","status":"publish","type":"post","link":"https:\/\/hasu0707.duckdns.org\/blog\/?p=119","title":{"rendered":"\uc708\ub3c4\uc6b0 \ub370\uc774\ud130 \ud0c0\uc785"},"content":{"rendered":"\n<DIV class=title><STRONG><SPAN style=\"FONT-SIZE: 12pt\">Common Data Types<\/SPAN><!----><\/STRONG><\/DIV><!--Content type: DocStudio. Transform: devdiv2mtps.xslt.-->\n<DIV id=mainSection>\n<DIV id=mainBody>\n<P><!----><\/P>\n<DIV id=collapseableSection class=section>\n<P>The following data types are commonly used when transferring data across the wire. All multiple-byte numbers are transmitted in little-endian format (least significant byte first), unless otherwise indicated.<\/P>\n<DIV id=code><PRE>typedef  __int8; \ntypedef  __int16; \ntypedef  __int32; \ntypedef  __int64; \ntypedef int BOOL, *PBOOL, *LPBOOL; \ntypedef BYTE BOOLEAN, *PBOOLEAN; \ntypedef WCHAR * BSTR; \ntypedef unsigned char BYTE, *PBYTE, *LPBYTE; \ntypedef char CHAR, *PCHAR; \ntypedef  CONST; \ntypedef  DOUBLE; \ntypedef unsigned long DWORD, *PDWORD, *LPDWORD; \ntypedef ULONGLONG DWORDLONG, *PDWORDLONG; \ntypedef ULONG_PTR DWORD_PTR; \ntypedef unsigned int DWORD32; \ntypedef unsigned __int64 DWORD64; \ntypedef  GUID; \ntypedef  HALF_PTR; \ntypedef  handle_t; \ntypedef  HRESULT; \ntypedef int INT, *LPINT; \ntypedef  INT_PTR; \ntypedef signed char INT8; \ntypedef signed short INT16; \ntypedef signed int INT32; \ntypedef signed __int64 INT64; \ntypedef  LARGE_INTEGER; \ntypedef  LMSTR; \ntypedef  LMCSTR; \ntypedef long LONG, *LPLONG; \ntypedef  LONGLONG; \ntypedef  LONG_PTR; \ntypedef signed int LONG32; \ntypedef __int64 LONG64; \ntypedef  LPCSTR; \ntypedef LPCSTR LPCTSTR; \ntypedef  LPCWSTR; \ntypedef  LPSTR; \ntypedef  LPTSTR; \ntypedef  LPWSTR; \ntypedef  NET_API_STATUS; \ntypedef  OLD_LARGE_INTEGER; \ntypedef  PWSTR; \ntypedef unsigned __int64 QWORD; \ntypedef short SHORT; \ntypedef  STRING; \ntypedef  SYSTEMTIME; \ntypedef  TCHAR; \ntypedef  TIME; \ntypedef unsigned char UCHAR, *PUCHAR; \ntypedef unsigned int UINT; \ntypedef  UINT_PTR; \ntypedef unsigned char UINT8; \ntypedef unsigned short UINT16; \ntypedef unsigned int UINT32; \ntypedef unsigned __int64 UINT64; \ntypedef unsigned long ULONG, *PULONG; \ntypedef  ULONGLONG; \ntypedef  ULONG_PTR; \ntypedef unsigned int ULONG32; \ntypedef unsigned __int64 ULONG64; \ntypedef  UNICODE; \ntypedef  UNICODE_STRING; \ntypedef  unsigned __int8; \ntypedef  unsigned __int16; \ntypedef  unsigned __int32; \ntypedef  unsigned __int64; \ntypedef unsigned short UNSIGNED16; \ntypedef unsigned long UNSIGNED32; \ntypedef unsigned short USHORT; \ntypedef  UTIME; \ntypedef  UUID; \ntypedef  VARIANT; \ntypedef void VOID, *PVOID; \ntypedef wchar_t WCHAR, *PWCHAR; \ntypedef  wchar_t; \ntypedef unsigned short WORD, *PWORD, *LPWORD; \n<!----><\/PRE><\/DIV>\n<TABLE class=FixedWidth-40-60>\n<TBODY>\n<TR>\n<TH id=ShadedCell>Value<\/TH>\n<TH id=ShadedCell1>Meaning<\/TH><\/TR>\n<TR>\n<TD>\n<P>__int8<\/P><\/TD>\n<TD>\n<P>An 8-bit signed integer (range: \u2013128 through 127 decimal). The first bit (Most Significant Bit (MSB)) is the signing bit.<\/P><\/TD><\/TR>\n<TR>\n<TD>\n<P>__int16<\/P><\/TD>\n<TD>\n<P>A 16-bit signed integer (range: \u201332768 through 32767 decimal. The first bit (Most Significant Bit (MSB)) is the signing bit.<\/P><\/TD><\/TR>\n<TR>\n<TD>\n<P>__int32<\/P><\/TD>\n<TD>\n<P>A 32-bit signed integer (range: \u20132147483648 through 2147483647 decimal). The first bit (Most Significant Bit (MSB)) is the signing bit.<\/P><\/TD><\/TR>\n<TR>\n<TD>\n<P>__int64<\/P><\/TD>\n<TD>\n<P>A 64-bit signed integer (range: \u20139223372036854775808 through 9223372036854775807 decimal). The first bit (Most Significant Bit (MSB)) is the signing bit.<\/P><\/TD><\/TR>\n<TR>\n<TD>\n<P>BOOL<\/P><\/TD>\n<TD>\n<P>A 32-bit field that is set to 1 to indicate <STRONG>TRUE<\/STRONG>, or 0 to indicate <STRONG>FALSE<\/STRONG>.<\/P>\n<P>This type is declared in WinDef.h as follows:<\/P>\n<DIV id=code1><PRE>typedef int BOOL;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>BOOLEAN<\/P><\/TD>\n<TD>\n<P>An 8-bit field that is set to 1 to indicate <STRONG>TRUE<\/STRONG>, or 0 to indicate <STRONG>FALSE<\/STRONG>.<\/P>\n<P>This type is declared in WinNT.h as follows:<\/P>\n<DIV id=code2><PRE>typedef BYTE BOOLEAN;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>BSTR<\/P><\/TD>\n<TD>\n<P><STRONG>BSTR<\/STRONG> is a pointer to a null-terminated character string in which the string length is stored with the string. Because the length is stored with the string, <STRONG>BSTR<\/STRONG> variables can contain embedded null characters. For example:<\/P>\n<P>[4 bytes (length prefix)], <a class=\"con_link\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/aa505945.aspx#wchar_t\" target=\"_blank\" rel=\"noopener\"><FONT color=#0033cc>wchar_t<\/FONT><\/A>[length], [\\0]<\/P>\n<P>For more information about the <STRONG>BSTR<\/STRONG> typedef, see the <STRONG>DBTYPE_BSTR<\/STRONG> description in the <a id=\"ctl00_rs1_mainContentContainer_ctl01\" class=\"con_link\" target=\"_blank\" rel=\"noopener\">:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl01',this);\" href=\"http:\/\/msdn2.microsoft.com\/en-us\/library\/ms711251.aspx\" &gt;<FONT color=#0033cc>Type Indicators<\/FONT><\/A> section on Microsoft Developer Network (MSDN).<\/P><\/TD><\/TR>\n<TR>\n<TD>\n<P>BYTE<\/P><\/TD>\n<TD>\n<P>An 8-bit block of data.<\/P>\n<P>This type is declared in WinDef.h as follows:<\/P>\n<DIV id=code3><PRE>typedef unsigned char BYTE;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>CHAR<\/P><\/TD>\n<TD>\n<P>An 8-bit block of data that typically contains a Windows (ANSI) character.<\/P>\n<P>This type is declared in WinNT.h as follows:<\/P>\n<DIV id=code4><PRE>typedef char CHAR;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>CONST<\/P><\/TD>\n<TD>\n<P>A variable whose value is to remain constant during execution. <\/P>\n<P>This type is declared in WinDef.h as follows:<\/P>\n<DIV id=code5><PRE>#define CONST const<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>DOUBLE<\/P><\/TD>\n<TD>\n<P>An 8-byte, double-precision, floating-point number representing a double-precision, 64-bit, IEEE 754 value with the range: 10308 through 10^323. The <STRONG>DOUBLE<\/STRONG> type can also represent NaN (Not a Number), positive and negative infinity, or positive and negative 0.<\/P><\/TD><\/TR>\n<TR>\n<TD>\n<P>DWORD<\/P><\/TD>\n<TD>\n<P>A 32-bit unsigned integer (range: 0 through 4294967295 decimal). Because a <STRONG>DWORD<\/STRONG> is unsigned, its first bit (Most Significant Bit (MSB)) is not reserved for signing.<\/P>\n<P>This type is declared in WinDef.h as follows:<\/P>\n<DIV id=code6><PRE>typedef unsigned long DWORD;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>DWORDLONG<\/P><\/TD>\n<TD>\n<P>A 64-bit unsigned integer (range: 0 through 18446744073709551615 decimal).<\/P>\n<P>This type is declared in WinNT.h as follows:<\/P>\n<DIV id=code7><PRE>typedef ULONGLONG DWORDLONG;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>DWORD_PTR<\/P><\/TD>\n<TD>\n<P>An unsigned long type for pointer precision. Use when casting a pointer to a long type to perform pointer arithmetic. (Also commonly used for general 32-bit parameters that have been extended to 64 bits in 64-bit Windows.) <\/P>\n<P>This type is declared in BaseTsd.h as follows:<\/P>\n<DIV id=code8><PRE>typedef ULONG_PTR DWORD_PTR;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>DWORD32<\/P><\/TD>\n<TD>\n<P>A 32-bit unsigned integer. <\/P>\n<P>This type is declared in BaseTsd.h as follows:<\/P>\n<DIV id=code9><PRE>typedef unsigned int DWORD32;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>DWORD64<\/P><\/TD>\n<TD>\n<P>A 64-bit unsigned integer. <\/P>\n<P>This type is declared in BaseTsd.h as follows:<\/P>\n<DIV id=code10><PRE>typedef unsigned __int64 DWORD64;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>GUID<\/P><\/TD>\n<TD>\n<P>A Globally Unique Identifier (GUID). This data type exposes the <STRONG>GUID<\/STRONG> structure, documented on the Microsoft Developer Network (MSDN), which contains the following fields:<\/P>\n<UL>\n<LI class=unordered>\n<P class=BulletedList><STRONG>DWORD<\/STRONG>: The first 8 hexadecimal digits of the GUID.<\/P>\n<LI class=unordered>\n<P class=BulletedList><STRONG>WORD<\/STRONG>: The first group of 4 hexadecimal digits of the GUID.<\/P>\n<LI class=unordered>\n<P class=BulletedList><STRONG>WORD<\/STRONG>: The second group of 4 hexadecimal digits of the GUID.<\/P>\n<LI class=unordered>\n<P class=BulletedList><STRONG>BYTE<\/STRONG>[]: An array whose first 2 bytes specify the third group of 4 hexadecimal digits, and whose remaining 6 bytes contain the final 12 hexadecimal digits of the GUID.<\/P><\/LI><\/UL><\/TD><\/TR>\n<TR>\n<TD>\n<P>HALF_PTR<\/P><\/TD>\n<TD>\n<P>Half the size of a pointer. Use within a structure that contains a pointer and two small fields. <\/P>\n<P>This type is declared in Basetsd.h as follows:<\/P>\n<DIV id=code11><PRE>#ifdef _WIN64\n typedef int HALF_PTR;\n#else\n typedef short HALF_PTR;\n#endif<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>handle_t<\/P><\/TD>\n<TD>\n<P>A context handle. Its implementation is server-specific, so its exact size and composition fall outside the scope of these documents.<\/P><\/TD><\/TR>\n<TR>\n<TD>\n<P>HRESULT<\/P><\/TD>\n<TD>\n<P>A 32-bit value that is used to describe an error or warning and contains the following fields:<\/P>\n<UL>\n<LI class=unordered>\n<P class=BulletedList>A 1-bit code that indicates severity, where 0 represents success and 1 represents failure.<\/P>\n<LI class=unordered>\n<P class=BulletedList>A 4-bit reserved value.<\/P>\n<LI class=unordered>\n<P class=BulletedList>An 11-bit code, also known as a facility code, that indicates responsibility for the error or warning.<\/P>\n<LI class=unordered>\n<P class=BulletedList>A 16-bit code that describes the error or warning.<\/P><\/LI><\/UL><\/TD><\/TR>\n<TR>\n<TD>\n<P>INT<\/P><\/TD>\n<TD>\n<P>A 32-bit signed integer (range: \u20132147483648 through 2147483647 decimal).<\/P>\n<P>This type is declared in WinDef.h as follows:<\/P>\n<DIV id=code12><PRE>typedef int INT;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>INT_PTR<\/P><\/TD>\n<TD>\n<P>A signed integer type for pointer precision. Use when casting a pointer to an integer to perform pointer arithmetic.<\/P>\n<P>This type is declared in BaseTsd.h as follows:<\/P>\n<DIV id=code13><PRE>#if defined(_WIN64) \n typedef __int64 INT_PTR; \n#else \n typedef int INT_PTR;\n#endif<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>INT8<\/P><\/TD>\n<TD>\n<P>An 8-bit signed integer (range: \u2013128 through 127 decimal). The first bit (Most Significant Bit (MSB)) is the signing bit.<\/P>\n<P>This type is declared in BaseTsd.h as follows:<\/P>\n<DIV id=code14><PRE>typedef signed char INT8;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>INT16<\/P><\/TD>\n<TD>\n<P>A 16-bit signed integer (range: \u201332768 through 32767 decimal). The first bit (Most Significant Bit (MSB)) is the signing bit.<\/P>\n<P>This type is declared in BaseTsd.h as follows:<\/P>\n<DIV id=code15><PRE>typedef signed short INT16;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>INT32<\/P><\/TD>\n<TD>\n<P>A 32-bit signed integer (range: \u20132147483648 through 2147483647 decimal). The first bit (Most Significant Bit (MSB)) is the signing bit.<\/P>\n<P>This type is declared in BaseTsd.h as follows:<\/P>\n<DIV id=code16><PRE>typedef signed int INT32;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>INT64<\/P><\/TD>\n<TD>\n<P>A 64-bit signed integer (range: \u20139223372036854775808 through 9223372036854775807 decimal). The first bit (Most Significant Bit (MSB)) is the signing bit.<\/P>\n<P>This type is declared in BaseTsd.h as follows:<\/P>\n<DIV id=code17><PRE>typedef signed __int64 INT64;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>LARGE_INTEGER<\/P><\/TD>\n<TD>\n<P>A 64-bit signed integer (range: \u20139223372036854775808 through 9223372036854775807 decimal). This data type exposes the <STRONG>LARGE_INTEGER<\/STRONG> structure. For more information, see <a id=\"ctl00_rs1_mainContentContainer_ctl02\" class=\"con_link\" target=\"_blank\" rel=\"noopener\">:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl02',this);\" href=\"http:\/\/go.microsoft.com\/fwlink\/?LinkId=124211\" &gt;<FONT color=#0033cc>LARGE_INTEGER<\/FONT><\/A> on Microsoft Developer Network (MSDN).<\/P><\/TD><\/TR>\n<TR>\n<TD>\n<P>LMSTR<\/P><\/TD>\n<TD>\n<P>A 32-bit pointer to a null-terminated string of 16-bit Unicode characters.<\/P>\n<P>This type is declared in Lmcons.h as follows:<\/P>\n<DIV id=code18><PRE>#define LMSTR LPWSTR<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>LMCSTR<\/P><\/TD>\n<TD>\n<P>A 32-bit pointer to a constant null-terminated string of 16-bit Unicode characters.<\/P>\n<P>This type is declared in Lmcons.h as follows:<\/P>\n<DIV id=code19><PRE>#define LMCSTR LPCWSTR<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>LONG<\/P><\/TD>\n<TD>\n<P>A 32-bit signed integer (range: \u20132147483648 through 2147483647 decimal). <\/P>\n<P>This type is declared in WinNT.h as follows:<\/P>\n<DIV id=code20><PRE>typedef long LONG;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>LONGLONG<\/P><\/TD>\n<TD>\n<P>A 64-bit signed integer (range: \u20139223372036854775808 through 9223372036854775807 decimal).<\/P>\n<P>This type is declared in WinNT.h as follows:<\/P>\n<DIV id=code21><PRE>#if !defined(_M_IX86)\n typedef __int64 LONGLONG; \n#else\n typedef double LONGLONG;\n#endif<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>LONG_PTR<\/P><\/TD>\n<TD>\n<P>A 32-bit signed <STRONG>LONG<\/STRONG> for pointer precision. Use when casting a pointer to a <STRONG>LONG<\/STRONG> to perform pointer arithmetic.<\/P>\n<P>This type is declared in BaseTsd.h as follows:<\/P>\n<DIV id=code22><PRE>#if defined(_WIN64)\n typedef __int64 LONG_PTR; \n#else\n typedef long LONG_PTR;\n#endif<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>LONG32<\/P><\/TD>\n<TD>\n<P>A 32-bit signed integer. <\/P>\n<P>This type is declared in BaseTsd.h as follows:<\/P>\n<DIV id=code23><PRE>typedef signed int LONG32;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>LONG64<\/P><\/TD>\n<TD>\n<P>A 64-bit signed integer. <\/P>\n<P>This type is declared in BaseTsd.h as follows:<\/P>\n<DIV id=code24><PRE>typedef __int64 LONG64;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>LPCSTR<\/P><\/TD>\n<TD>\n<P>A 32-bit pointer to a constant null-terminated string of 8-bit Windows (ANSI) characters.<\/P>\n<P>This type is declared in WinNT.h as follows:<\/P>\n<DIV id=code25><PRE>typedef __nullterminated CONST CHAR *LPCSTR;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>LPCTSTR<\/P><\/TD>\n<TD>\n<P>A 32-bit pointer to a null-terminated string of 8-bit Windows (ANSI) characters.<\/P>\n<P>This type is declared in WinNT.h as follows:<\/P>\n<DIV id=code26><PRE>#ifdef UNICODE\n typedef LPCWSTR LPCTSTR; \n#else\n typedef LPCSTR LPCTSTR;\n#endif\n<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>LPCWSTR<\/P><\/TD>\n<TD>\n<P>A 32-bit pointer to a constant null-terminated string of 16-bit Unicode characters.<\/P>\n<P>This type is declared in WinNT.h as follows:<\/P>\n<DIV id=code27><PRE>typedef CONST WCHAR *LPCWSTR;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>LPSTR<\/P><\/TD>\n<TD>\n<P>A 32-bit pointer to a null-terminated string of 8-bit Windows (ANSI) characters.<\/P>\n<P>This type is declared in WinNT.h as follows:<\/P>\n<DIV id=code28><PRE>typedef CHAR *LPSTR;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>LPTSTR<\/P><\/TD>\n<TD>\n<P>A 32-bit pointer to a null-terminated string of 8-bit Windows (ANSI) characters.<\/P>\n<P>This type is declared in WinNT.h as follows:<\/P>\n<DIV id=code29><PRE>#ifdef UNICODE\n typedef LPWSTR LPTSTR;\n#else\n typedef LPSTR LPTSTR;\n#endif<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>LPWSTR<\/P><\/TD>\n<TD>\n<P>A 32-bit pointer to a null-terminated string of 16-bit Unicode characters.<\/P>\n<P>This type is declared in WinNT.h as follows:<\/P>\n<DIV id=code30><PRE>typedef WCHAR *LPWSTR;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>NET_API_STATUS<\/P><\/TD>\n<TD>\n<P>A <STRONG>DWORD<\/STRONG> data type.<\/P>\n<P>This type is declared in Lmcons.h as follows:<\/P>\n<DIV id=code31><PRE>#define NET_API_STATUS DWORD<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>OLD_LARGE_INTEGER<\/P><\/TD>\n<TD>\n<P>A data type that exposes an <STRONG>OLD_LARGE_INTEGER<\/STRONG> structure, which contains the following:<\/P>\n<UL>\n<LI class=unordered>\n<P class=BulletedList><STRONG>ULONG<\/STRONG>: The lower 4 bytes.<\/P>\n<LI class=unordered>\n<P class=BulletedList><STRONG>LONG<\/STRONG>: The upper 4 bytes.<\/P><\/LI><\/UL>\n<P>For more information, see <a id=\"ctl00_rs1_mainContentContainer_ctl03\" class=\"con_link\" target=\"_blank\" rel=\"noopener\">:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl03',this);\" href=\"http:\/\/go.microsoft.com\/fwlink\/?LinkId=124152\" &gt;<FONT color=#0033cc>OLD_LARGE_INTEGER<\/FONT><\/A> on Microsoft Developer Network (MSDN).<\/P><\/TD><\/TR>\n<TR>\n<TD>\n<P>PWSTR<\/P><\/TD>\n<TD>\n<P>A 32-bit pointer to a null-terminated string of 16-bit Unicode characters.<\/P>\n<P>This type is declared in WinNT.h as follows:<\/P>\n<DIV id=code32><PRE>typedef WCHAR *PWSTR;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>QWORD<\/P><\/TD>\n<TD>\n<P>A 64-bit unsigned integer.<\/P>\n<P>This type is declared in wmsdkidl.h as follows:<\/P>\n<DIV id=code33><PRE>typedef unsigned __int64 QWORD<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>SHORT<\/P><\/TD>\n<TD>\n<P>A 16-bit integer (range: \u201332768 through 32767 decimal). The first bit (Most Significant Bit (MSB)) is the signing bit.<\/P>\n<P>This type is declared in WinNT.h as follows:<\/P>\n<DIV id=code34><PRE>typedef short SHORT;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>STRING<\/P><\/TD>\n<TD>\n<P>Unless otherwise noted, a <STRONG>UCHAR<\/STRONG> buffer that represents a null-terminated ASCII string.<\/P><\/TD><\/TR>\n<TR>\n<TD>\n<P>SYSTEMTIME<\/P><\/TD>\n<TD>\n<P>A date and time, in Coordinated Universal Time (UTC), represented by using individual <STRONG>WORD<\/STRONG>-sized structure members for the month, day, year, day of week, hour, minute, second, and millisecond. This data type exposes the <STRONG>SYSTEMTIME<\/STRONG> structure.<\/P>\n<P>This structure is declared in Winbase.h as follows:<\/P>\n<DIV id=code35><PRE>typedef struct _SYSTEMTIME {\n    WORD wYear;\n    WORD wMonth;\n    WORD wDayOfWeek;\n    WORD wDay;\n    WORD wHour;\n    WORD wMinute;\n    WORD wSecond;\n    WORD wMilliseconds;\n} SYSTEMTIME, *PSYSTEMTIME;<\/PRE><\/DIV>\n<P>For more information, see the <a id=\"ctl00_rs1_mainContentContainer_ctl04\" class=\"con_link\" target=\"_blank\" rel=\"noopener\">:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl04',this);\" href=\"http:\/\/go.microsoft.com\/fwlink\/?LinkId=93364\" &gt;<FONT color=#0033cc>SYSTEMTIME<\/FONT><\/A> on Microsoft Developer Network (MSDN).<\/P><\/TD><\/TR>\n<TR>\n<TD>\n<P>TCHAR<\/P><\/TD>\n<TD>\n<P>A character that is a <STRONG>WCHAR<\/STRONG> if Unicode is defined, or a <STRONG>CHAR<\/STRONG> otherwise.<\/P>\n<P>This type is declared in WinNT.h as follows:<\/P>\n<DIV id=code36><PRE>#ifdef UNICODE\n typedef WCHAR TCHAR;\n#else\n typedef char TCHAR;\n#endif<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>TIME<\/P><\/TD>\n<TD>\n<P>A 64-bit integer that represents an absolute time or a time interval. Times are specified in units of 100 milliseconds. This data type exposes the <STRONG>TIME<\/STRONG> structure, which contains the following:<\/P>\n<UL>\n<LI class=unordered>\n<P class=BulletedList><STRONG>ULONG<\/STRONG>: The lower 4 bytes.<\/P>\n<LI class=unordered>\n<P class=BulletedList><STRONG>LONG<\/STRONG>: The upper 4 bytes.<\/P><\/LI><\/UL>\n<P>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.<\/P><\/TD><\/TR>\n<TR>\n<TD>\n<P>UCHAR<\/P><\/TD>\n<TD>\n<P>An 8-bit integer block of data with the range: 0 through 255 decimal. Because a <STRONG>UCHAR<\/STRONG> is unsigned, its first bit (Most Significant Bit (MSB)) is not reserved for signing.<\/P>\n<P>This type is declared in WinDef.h as follows:<\/P>\n<DIV id=code37><PRE>typedef unsigned char UCHAR;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>UINT<\/P><\/TD>\n<TD>\n<P>A 32-bit unsigned integer (range: 0 through 4294967295 decimal). Because a <STRONG>UINT<\/STRONG> is unsigned, its first bit (Most Significant Bit (MSB)) is not reserved for signing.<\/P>\n<P>This type is declared in WinDef.h as follows:<\/P>\n<DIV id=code38><PRE>typedef unsigned int UINT;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>UINT_PTR<\/P><\/TD>\n<TD>\n<P>An unsigned <STRONG>INT_PTR<\/STRONG>. <\/P>\n<P>This type is declared in BaseTsd.h as follows:<\/P>\n<DIV id=code39><PRE>#if defined(_WIN64)\n typedef unsigned int64 UINT_PTR;\n#else\n typedef unsigned int UINT_PTR\n#endif<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>UINT8<\/P><\/TD>\n<TD>\n<P>An 8-bit unsigned integer (range: 0 through 255 decimal). Because a <STRONG>UINT8<\/STRONG> is unsigned, its first bit (Most Significant Bit (MSB)) is not reserved for signing.<\/P>\n<P>This type is declared in BaseTsd.h as follows:<\/P>\n<DIV id=code40><PRE>typedef unsigned char UINT8;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>UINT16<\/P><\/TD>\n<TD>\n<P>A 16-bit unsigned integer (range: 0 through 65535 decimal). Because a <STRONG>UINT16<\/STRONG> is unsigned, its first bit (Most Significant Bit (MSB)) is not reserved for signing.<\/P>\n<P>This type is declared in BaseTsd.h as follows:<\/P>\n<DIV id=code41><PRE>typedef unsigned short UINT16;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>UINT32<\/P><\/TD>\n<TD>\n<P>A 32-bit unsigned integer (range: 0 through 4294967295 decimal). Because a <STRONG>UINT32<\/STRONG> is unsigned, its first bit (Most Significant Bit (MSB)) is not reserved for signing.<\/P>\n<P>This type is declared in BaseTsd.h as follows:<\/P>\n<DIV id=code42><PRE>typedef unsigned int UINT32;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>UINT64<\/P><\/TD>\n<TD>\n<P>A 64-bit unsigned integer (range: 0 through 18446744073709551615 decimal). Because a <STRONG>UINT64<\/STRONG> is unsigned, its first bit (Most Significant Bit (MSB)) is not reserved for signing.<\/P>\n<P>This type is declared in BaseTsd.h as follows:<\/P>\n<DIV id=code43><PRE>typedef unsigned __int64 UINT64;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>ULONG<\/P><\/TD>\n<TD>\n<P>A 32-bit unsigned integer (range: 0 through 4294967295 decimal). Because a <STRONG>ULONG<\/STRONG> is unsigned, its first bit (Most Significant Bit (MSB)) is not reserved for signing.<\/P>\n<P>This type is declared in WinDef.h as follows:<\/P>\n<DIV id=code44><PRE>typedef unsigned long ULONG;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>ULONGLONG<\/P><\/TD>\n<TD>\n<P>A 64-bit unsigned integer (range: 0 through 18446744073709551615 decimal). Because a <STRONG>ULONGLONG<\/STRONG> is unsigned, its first bit (Most Significant Bit (MSB)) is not reserved for signing.<\/P>\n<P>This type is declared in WinNT.h as follows:<\/P>\n<DIV id=code45><PRE>#if !defined(_M_IX86)\n typedef unsigned __int64 ULONGLONG;\n#else\n typedef double ULONGLONG\n#endif<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>ULONG_PTR<\/P><\/TD>\n<TD>\n<P>A 32-bit pointer to a <STRONG>ULONG<\/STRONG>.<\/P>\n<P>This type is declared in BaseTsd.h as follows:<\/P>\n<DIV id=code46><PRE>#if defined(_WIN64)\n typedef unsigned __int64 ULONG_PTR;\n#else\n typedef unsigned long ULONG_PTR;\n#endif<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>ULONG32<\/P><\/TD>\n<TD>\n<P>An unsigned <STRONG>LONG32<\/STRONG>. <\/P>\n<P>This type is declared in BaseTsd.h as follows:<\/P>\n<DIV id=code47><PRE>typedef unsigned int ULONG32;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>ULONG64<\/P><\/TD>\n<TD>\n<P>An unsigned <STRONG>LONG64<\/STRONG>. <\/P>\n<P>This type is declared in BaseTsd.h as follows:<\/P>\n<DIV id=code48><PRE>typedef unsigned __int64 ULONG64;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>UNICODE<\/P><\/TD>\n<TD>\n<P>Unless otherwise specified by a public specification, Microsoft uses the UTF-16 version of the Unicode character encoding. For more information on UTF-16, see <a id=\"ctl00_rs1_mainContentContainer_ctl05\" class=\"con_link\" target=\"_blank\" rel=\"noopener\">:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl05',this);\" href=\"http:\/\/go.microsoft.com\/fwlink\/?LinkId=90380\" &gt;<FONT color=#0033cc>RFC 2781: UTF-16, an encoding of ISO 10646<\/FONT><\/A>.<\/P><\/TD><\/TR>\n<TR>\n<TD>\n<P>UNICODE_STRING<\/P><\/TD>\n<TD>\n<P>A complex data type, documented on Microsoft Developer Network (MSDN) that consists of the following:<\/P>\n<UL>\n<LI class=unordered>\n<P class=BulletedList><STRONG>USHORT<\/STRONG>: Length, in bytes, of the wide-character string.<\/P>\n<LI class=unordered>\n<P class=BulletedList><STRONG>USHORT<\/STRONG>: Total size, in bytes, of memory allocated for the wide-character string buffer.<\/P>\n<LI class=unordered>\n<P class=BulletedList><STRONG>PWSTR<\/STRONG>: Pointer to a wide-character string buffer.<\/P><\/LI><\/UL><\/TD><\/TR>\n<TR>\n<TD>\n<P>unsigned __int8<\/P><\/TD>\n<TD>\n<P>A 8-bit unsigned integer (range: 0 through 255 decimal). Because an <STRONG>unsigned __int8<\/STRONG> is unsigned, its first bit (Most Significant Bit (MSB)) is not reserved for signing.<\/P><\/TD><\/TR>\n<TR>\n<TD>\n<P>unsigned __int16<\/P><\/TD>\n<TD>\n<P>A 16-bit unsigned integer (range: 0 through 65535 decimal). Because an <STRONG>unsigned __int16<\/STRONG> is unsigned, its first bit (Most Significant Bit (MSB)) is not reserved for signing.<\/P><\/TD><\/TR>\n<TR>\n<TD>\n<P>unsigned __int32<\/P><\/TD>\n<TD>\n<P>A 32-bit unsigned integer (range: 0 through 4294967295 decimal). Because an <STRONG>unsigned __int32<\/STRONG> is unsigned, its first bit (Most Significant Bit (MSB)) is not reserved for signing.<\/P><\/TD><\/TR>\n<TR>\n<TD>\n<P>unsigned __int64<\/P><\/TD>\n<TD>\n<P>A 64-bit unsigned integer (range: 0 through 18446744073709551615 decimal). Because an <STRONG>unsigned __int64<\/STRONG> is unsigned, its first bit (Most Significant Bit (MSB)) is not reserved for signing.<\/P><\/TD><\/TR>\n<TR>\n<TD>\n<P>UNSIGNED16<\/P><\/TD>\n<TD>\n<P>A 16-bit unsigned integer (range: 0 through 65535 decimal). Because an <STRONG>UNSIGNED16<\/STRONG> is unsigned, its first bit (Most Significant Bit (MSB)) is not reserved for signing.<\/P><\/TD><\/TR>\n<TR>\n<TD>\n<P>UNSIGNED32<\/P><\/TD>\n<TD>\n<P>A 32-bit unsigned integer (range: 0 through 4294967295 decimal). Because an <STRONG>UNSIGNED32<\/STRONG> is unsigned, its first bit (Most Significant Bit (MSB)) is not reserved for signing.<\/P><\/TD><\/TR>\n<TR>\n<TD>\n<P>USHORT<\/P><\/TD>\n<TD>\n<P>A 16-bit unsigned integer (range: 0 through 65535 decimal). Because a <STRONG>USHORT<\/STRONG> is unsigned, its first bit (Most Significant Bit (MSB)) is not reserved for signing.<\/P>\n<P>This type is declared in WinDef.h as follows:<\/P>\n<DIV id=code49><PRE>typedef unsigned short USHORT;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>UTIME<\/P><\/TD>\n<TD>\n<P>A 32-bit unsigned integer that represents the number of seconds since 00:00:00.0 January 1, 1970 Coordinated Universal Time (UTC). For example, noon on January 1, 1970 is represented as 43200.<\/P><\/TD><\/TR>\n<TR>\n<TD>\n<P>UUID<\/P><\/TD>\n<TD>\n<P>A Universally Unique Identifier. This data type exposes the <STRONG>UUID<\/STRONG> structure, documented on Microsoft Developer Network (MSDN), which contains the following:<\/P>\n<UL>\n<LI class=unordered>\n<P class=BulletedList><STRONG>LONG<\/STRONG>: The first 8 hexadecimal digits of the <STRONG>UUID<\/STRONG>.<\/P>\n<LI class=unordered>\n<P class=BulletedList><STRONG>SHORT<\/STRONG>: The first group of 4 hexadecimal digits of the <STRONG>UUID<\/STRONG>.<\/P>\n<LI class=unordered>\n<P class=BulletedList><STRONG>SHORT<\/STRONG>: The second group of 4 hexadecimal digits of the <STRONG>UUID<\/STRONG>.<\/P>\n<LI class=unordered>\n<P class=BulletedList><STRONG>CHAR<\/STRONG>[]: An array whose first 2 bytes specify the third group of four hexadecimal digits, and whose remaining 6 bytes contain the final 12 hexadecimal digits of the <STRONG>UUID<\/STRONG>.<\/P><\/LI><\/UL><\/TD><\/TR>\n<TR>\n<TD>\n<P>VARIANT<\/P><\/TD>\n<TD>\n<P>An automation structure data type, documented on Microsoft Developer Network (MSDN), that can represent any other automation data type.<\/P><\/TD><\/TR>\n<TR>\n<TD>\n<P>VOID<\/P><\/TD>\n<TD>\n<P>This is an alias for <STRONG>void<\/STRONG>.<\/P><\/TD><\/TR>\n<TR>\n<TD>\n<P>WCHAR<\/P><\/TD>\n<TD>\n<P>A 16-bit Unicode character.<\/P>\n<P>This type is declared in WinNT.h as follows:<\/P>\n<DIV id=code50><PRE>typedef wchar_t WCHAR;<\/PRE><\/DIV><\/TD><\/TR>\n<TR>\n<TD>\n<P>wchar_t<\/P><\/TD>\n<TD>\n<P>A 16-bit Unicode character for use with the Microsoft Interface Definition Language (MIDL) compiler.<\/P><\/TD><\/TR>\n<TR>\n<TD>\n<P>WORD<\/P><\/TD>\n<TD>\n<P>A 16-bit unsigned integer (range: 0 through 65535 decimal). Because a <STRONG>WORD<\/STRONG> is unsigned, its first bit (Most Significant Bit (MSB)) is not reserved for signing.<\/P>\n<P>This type is declared in WinDef.h as follows:<\/P>\n<DIV id=code51><PRE>typedef unsigned short WORD;<\/PRE><\/DIV><\/TD><\/TR><\/TBODY><\/TABLE><\/DIV><\/DIV><\/DIV>\n","protected":false},"excerpt":{"rendered":"<p>Common Data Types The following data types are commonly used when transferring data across the wire. All multiple-byte numbers are transmitted in little-endian format (least significant byte first), unless otherwise indicated. typedef __int8; typedef __int16; typedef __int32; typedef __int64; typedef int BOOL, *PBOOL, *LPBOOL; typedef BYTE BOOLEAN, *PBOOLEAN; typedef WCHAR * BSTR; typedef unsigned char [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[18],"tags":[],"class_list":["post-119","post","type-post","status-publish","format-standard","hentry","category-development_language"],"_links":{"self":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/119","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=119"}],"version-history":[{"count":0,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/119\/revisions"}],"wp:attachment":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=119"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=119"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=119"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}