다음을 통해 공유


Windows 데이터 형식

Windows에서 지원하는 데이터 형식은 함수 반환 값, 함수 및 메시지 매개 변수 및 구조체 멤버를 정의하는 데 사용됩니다. 이러한 요소의 크기와 의미를 정의합니다. 기본 C/C++ 데이터 형식에 대한 자세한 내용은 데이터 형식 범위를 참조하세요.

다음 표에는 문자, 정수, 부울, 포인터 및 핸들 형식이 포함되어 있습니다. 문자, 정수 및 부울 형식은 대부분의 C 컴파일러에서 일반적입니다. 대부분의 포인터 형식 이름은 P 또는 LP 접두사로 시작합니다. 핸들은 메모리에 로드된 리소스를 나타냅니다.

64비트 정수 처리에 대한 자세한 내용은 큰 정수를 참조 하세요.

데이터 형식 설명
API 시스템 함수에 대한 호출 규칙입니다.
이 형식은 다음과 같이 WinDef.h에서 선언됩니다.
#define APIENTRY WINAPI
원자 원자입니다. 자세한 내용은 Atom 테이블 정보를 참조하세요.
이 형식은 다음과 같이 WinDef.h에서 선언됩니다.
typedef WORD ATOM;
Bool 부울 변수( TRUE 또는 FALSE여야 합니다).
이 형식은 다음과 같이 WinDef.h에서 선언됩니다.
typedef int BOOL;
부울 부울 변수( TRUE 또는 FALSE여야 합니다).
이 형식은 다음과 같이 WinNT.h에서 선언됩니다.
typedef BYTE BOOLEAN;
바이트 바이트(8비트).
이 형식은 다음과 같이 WinDef.h에서 선언됩니다.
typedef unsigned char BYTE;
콜백 콜백 함수에 대한 호출 규칙입니다.
이 형식은 다음과 같이 WinDef.h에서 선언됩니다.
#define CALLBACK __stdcall
CALLBACK, WINAPIAPIENTRY 는 모두 __stdcall 호출 규칙을 사용하여 함수를 정의하는 데 사용됩니다. Windows API의 대부분의 함수는 WINAPI를 사용하여 선언됩니다. 콜백 함수를 콜백 함수로 식별하는 데 도움이 되도록 구현하는 콜백 함수에 대해 CALLBACK 을 사용할 수 있습니다.
Cchar ANSI(8비트 Windows) 문자입니다.
이 형식은 다음과 같이 WinNT.h에서 선언됩니다.
typedef char CCHAR;
Char ANSI(8비트 Windows) 문자입니다. 자세한 내용은 글꼴에서 사용되는 문자 집합을 참조하세요.
이 형식은 다음과 같이 WinNT.h에서 선언됩니다.
typedef char CHAR;
COLORREF 빨강, 녹색, 파랑(RGB) 색 값(32비트)입니다. 이 형식에 대한 자세한 내용은 COLORREF 를 참조하세요.
이 형식은 다음과 같이 WinDef.h에서 선언됩니다.
typedef DWORD COLORREF;
Const 실행 중에 값이 일정하게 유지되는 변수입니다.
이 형식은 다음과 같이 WinDef.h에서 선언됩니다.
#define CONST const
Dword 32비트 부호 없는 정수입니다. 범위는 0부터 10진수까지 4294967295.
이 형식은 다음과 같이 IntSafe.h에서 선언됩니다.
typedef unsigned long DWORD;
DWORDLONG 64비트 부호 없는 정수입니다. 범위는 0에서 18446744073709551615 소수입니다.
이 형식은 다음과 같이 IntSafe.h에서 선언됩니다.
typedef unsigned __int64 DWORDLONG;
DWORD_PTR 포인터 정밀도에 대한 부호 없는 긴 형식입니다. 포인터를 긴 형식으로 캐스팅하여 포인터 산술 연산을 수행할 때 사용합니다. (64비트 Windows에서 64비트로 확장된 일반 32비트 매개 변수에도 일반적으로 사용됩니다.)
이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.
typedef ULONG_PTR DWORD_PTR;
DWORD32 32비트 부호 없는 정수입니다.
이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.
typedef unsigned int DWORD32;
DWORD64 64비트 부호 없는 정수입니다.
이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.
typedef unsigned __int64 DWORD64;
플 로트 부동 소수점 변수입니다.
이 형식은 다음과 같이 WinDef.h에서 선언됩니다.
typedef float FLOAT;
HACCEL 액셀러레이터 테이블에 대한 핸들입니다.
이 형식은 다음과 같이 WinDef.h에서 선언됩니다.
typedef HANDLE HACCEL;
HALF_PTR 포인터 크기의 절반입니다. 포인터와 두 개의 작은 필드가 포함된 구조체 내에서 를 사용합니다.
이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.
C++
#ifdef _WIN64
 typedef int HALF_PTR;
#else
 typedef short HALF_PTR;
#endif
처리

개체에 대한 핸들입니다.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

typedef PVOID HANDLE;

HBITMAP

비트맵에 대한 핸들입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef HANDLE HBITMAP;

HBRUSH

브러시에 대한 핸들입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef HANDLE HBRUSH;

HCOLORSPACE

색 공간에 대한 핸들입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef HANDLE HCOLORSPACE;

HCONV

DDE(동적 데이터 교환) 대화에 대한 핸들입니다.

이 형식은 다음과 같이 Ddeml.h에서 선언됩니다.

typedef HANDLE HCONV;

HCONVLIST

DDE 대화 목록에 대한 핸들입니다.

이 형식은 다음과 같이 Ddeml.h에서 선언됩니다.

typedef HANDLE HCONVLIST;

HCURSOR

커서에 대한 핸들 입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef HICON HCURSOR;

Hdc

DC(디바이스 컨텍스트)에 대한 핸들입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef HANDLE HDC;

HDDEDATA

DDE 데이터에 대한 핸들입니다.

이 형식은 다음과 같이 Ddeml.h에서 선언됩니다.

typedef HANDLE HDDEDATA;

HDESK

바탕 화면에 대한 핸들입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef HANDLE HDESK;

HDROP

내부 놓기 구조체에 대한 핸들입니다.

이 형식은 다음과 같이 ShellApi.h에서 선언됩니다.

typedef HANDLE HDROP;

HDWP

지연된 창 위치 구조체에 대한 핸들입니다.

이 형식은 다음과 같이 WinUser.h에서 선언됩니다.

typedef HANDLE HDWP;

HENHMETAFILE

향상된 메타파일의 핸들입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef HANDLE HENHMETAFILE;

HFILE

CreateFile이 아닌 OpenFile에서 연 파일에 대한 핸들입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef int HFILE;

HFONT

글꼴에 대한 핸들입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef HANDLE HFONT;

HGDIOBJ

GDI 개체에 대한 핸들입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef HANDLE HGDIOBJ;

Hglobal

전역 메모리 블록에 대한 핸들입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef HANDLE HGLOBAL;

HHOOK

후크에 대한 핸들입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef HANDLE HHOOK;

HICON

아이콘에 대한 핸들입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef HANDLE HICON;

HINSTANCE

instance 대한 핸들입니다. 메모리에 있는 모듈의 기본 주소입니다.

HMODULEHINSTANCE 는 현재 동일하지만 16비트 Windows에서는 다른 항목을 나타냅니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef HANDLE HINSTANCE;

HKEY

레지스트리 키에 대한 핸들입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef HANDLE HKEY;

HKL

입력 로캘 식별자입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef HANDLE HKL;

HLOCAL

로컬 메모리 블록에 대한 핸들입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef HANDLE HLOCAL;

Hmenu

메뉴에 대한 핸들입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef HANDLE HMENU;

HMETAFILE

메타파일의 핸들입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef HANDLE HMETAFILE;

HMODULE

모듈에 대한 핸들입니다. 메모리에 있는 모듈의 기본 주소입니다.

HMODULEHINSTANCE 는 현재 버전의 Windows에서 동일하지만 16비트 Windows에서는 다른 항목을 나타냅니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef HINSTANCE HMODULE;

HMONITOR

디스플레이 모니터에 대한 핸들입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

if(WINVER >= 0x0500) typedef HANDLE HMONITOR;

HPALETTE

팔레트에 대한 핸들입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef HANDLE HPALETTE;

HPEN

에 대한 핸들입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef HANDLE HPEN;

Hresult

COM 인터페이스에서 사용하는 반환 코드입니다. 자세한 내용은 COM 오류 코드의 구조를 참조하세요. HRESULT 값을 테스트하려면 FAILED 및 SUCCEEDED 매크로를 사용합니다.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

typedef LONG HRESULT;

HRGN

지역에 대한 핸들입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef HANDLE HRGN;

HRSRC

리소스에 대한 핸들입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef HANDLE HRSRC;

HSZ

DDE 문자열에 대한 핸들입니다.

이 형식은 다음과 같이 Ddeml.h에서 선언됩니다.

typedef HANDLE HSZ;

HWINSTA

창 스테이션에 대한 핸들입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef HANDLE WINSTA;

Hwnd

에 대한 핸들입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef HANDLE HWND;

Int

32비트 부호 있는 정수입니다. 범위는 2147483647 소수를 통해 -2147483648.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef int INT;

INT_PTR

포인터 정밀도에 대한 부가 정수 형식입니다. 포인터를 정수에 캐스팅할 때 를 사용하여 포인터 산술 연산을 수행합니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

C++
#if defined(_WIN64) 
 typedef __int64 INT_PTR; 
#else 
 typedef int INT_PTR;
#endif
INT8

8비트 부호 있는 정수입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef signed char INT8;

Int16

16비트 부호 있는 정수입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef signed short INT16;

Int32

32비트 부호 있는 정수입니다. 범위는 2147483647 소수를 통해 -2147483648.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef signed int INT32;

Int64

64비트 부호 있는 정수입니다. 범위는 9223372036854775807 소수점까지 -9223372036854775808.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef signed __int64 INT64;

Langid

언어 식별자. 자세한 내용은 언어 식별자를 참조하세요.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

typedef WORD LANGID;

Lcid

로캘 식별자입니다. 자세한 내용은 로캘 식별자를 참조하세요.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

typedef DWORD LCID;

LCTYPE

로캘 정보 형식입니다. 목록은 로캘 정보 상수를 참조하세요.

이 형식은 다음과 같이 WinNls.h에서 선언됩니다.

typedef DWORD LCTYPE;

LGRPID

언어 그룹 식별자입니다. 목록은 EnumLanguageGroupLocales를 참조하세요.

이 형식은 다음과 같이 WinNls.h에서 선언됩니다.

typedef DWORD LGRPID;

32비트 부호 있는 정수입니다. 범위는 10진수를 통해 -2147483648 2147483647.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

typedef long LONG;

LONGLONG

64비트 부호 있는 정수입니다. 범위는 -9223372036854775808 9223372036854775807 10진수까지입니다.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

C++
#if !defined(_M_IX86)
 typedef __int64 LONGLONG; 
#else
 typedef double LONGLONG;
#endif
LONG_PTR

포인터 정밀도에 대한 서명된 long 형식입니다. 포인터를 long으로 캐스팅할 때 를 사용하여 포인터 산술 연산을 수행합니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

C++
#if defined(_WIN64)
 typedef __int64 LONG_PTR; 
#else
 typedef long LONG_PTR;
#endif
LONG32

32비트 부호 있는 정수입니다. 범위는 10진수를 통해 -2147483648 2147483647.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef signed int LONG32;

LONG64

64비트 부호 있는 정수입니다. 범위는 -9223372036854775808 9223372036854775807 10진수까지입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef __int64 LONG64;

Lparam

메시지 매개 변수입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef LONG_PTR LPARAM;

LPBOOL

BOOL에 대한 포인터입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef BOOL far *LPBOOL;

LPBYTE

BYTE에 대한 포인터입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef BYTE far *LPBYTE;

LPCOLORREF

COLORREF 값에 대한 포인터입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef DWORD *LPCOLORREF;

LPCSTR

ANSI(8비트 Windows) 문자의 null로 끝나는 상수 문자열에 대한 포인터입니다. 자세한 내용은 글꼴에서 사용되는 문자 집합을 참조하세요.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

typedef __nullterminated CONST CHAR *LPCSTR;

LPCTSTR

유니코드가 정의된 경우 LPCWSTR이고, 그렇지 않으면 LPCSTR입니다. 자세한 내용은 문자열에 대한 Windows 데이터 형식을 참조하세요.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

C++
#ifdef UNICODE
 typedef LPCWSTR LPCTSTR; 
#else
 typedef LPCSTR LPCTSTR;
#endif
LPCVOID

모든 형식의 상수에 대한 포인터입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef CONST void *LPCVOID;

LPCWSTR

16비트 유니코드 문자의 null로 끝나는 상수 문자열에 대한 포인터입니다. 자세한 내용은 글꼴에서 사용되는 문자 집합을 참조하세요.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

typedef CONST WCHAR *LPCWSTR;

LPDWORD

DWORD에 대한 포인터입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef DWORD *LPDWORD;

LPHANDLE

HANDLE에 대한 포인터입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef HANDLE *LPHANDLE;

LPINT

INT에 대한 포인터입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef int *LPINT;

LPLONG

LONG에 대한 포인터입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef long *LPLONG;

LPSTR

ANSI(8비트 Windows) 문자의 null로 끝나는 문자열에 대한 포인터입니다. 자세한 내용은 글꼴에서 사용되는 문자 집합을 참조하세요.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

typedef CHAR *LPSTR;

LPTSTR

UNICODE가 정의된 경우 LPWSTR이고, 그렇지 않으면 LPSTR입니다. 자세한 내용은 문자열에 대한 Windows 데이터 형식을 참조하세요.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

C++
#ifdef UNICODE
 typedef LPWSTR LPTSTR;
#else
 typedef LPSTR LPTSTR;
#endif
LPVOID

모든 형식에 대한 포인터입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef void *LPVOID;

LPWORD

WORD에 대한 포인터입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef WORD *LPWORD;

LPWSTR

16비트 유니코드 문자의 null로 끝나는 문자열에 대한 포인터입니다. 자세한 내용은 글꼴에서 사용되는 문자 집합을 참조하세요.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

typedef WCHAR *LPWSTR;

LRESULT

메시지 처리의 서명된 결과입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef LONG_PTR LRESULT;

PBOOL

BOOL에 대한 포인터입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef BOOL *PBOOL;

PBOOLEAN

BOOLEAN에 대한 포인터입니다.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

typedef BOOLEAN *PBOOLEAN;

PBYTE

BYTE에 대한 포인터입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef BYTE *PBYTE;

PCHAR

CHAR에 대한 포인터입니다.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

typedef CHAR *PCHAR;

PCSTR

ANSI(8비트 Windows) 문자의 null로 끝나는 상수 문자열에 대한 포인터입니다. 자세한 내용은 글꼴에 사용되는 문자 집합을 참조하세요.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

typedef CONST CHAR *PCSTR;

PCTSTR

유니코드가 정의된 경우 PCWSTR이고, 그렇지 않으면 PCSTR입니다. 자세한 내용은 문자열용 Windows 데이터 형식을 참조하세요.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

C++
#ifdef UNICODE
 typedef LPCWSTR PCTSTR;
#else
 typedef LPCSTR PCTSTR;
#endif
PCWSTR

16비트 유니코드 문자의 null로 끝나는 상수 문자열에 대한 포인터입니다. 자세한 내용은 글꼴에 사용되는 문자 집합을 참조하세요.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

typedef CONST WCHAR *PCWSTR;

PDWORD

DWORD에 대한 포인터입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef DWORD *PDWORD;

PDWORDLONG

DWORDLONG에 대한 포인터입니다.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

typedef DWORDLONG *PDWORDLONG;

PDWORD_PTR

DWORD_PTR 대한 포인터입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef DWORD_PTR *PDWORD_PTR;

PDWORD32

DWORD32에 대한 포인터입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef DWORD32 *PDWORD32;

PDWORD64

DWORD64에 대한 포인터입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef DWORD64 *PDWORD64;

PFLOAT

FLOAT에 대한 포인터입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef FLOAT *PFLOAT;

PHALF_PTR

HALF_PTR 대한 포인터입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

C++
#ifdef _WIN64
 typedef HALF_PTR *PHALF_PTR;
#else
 typedef HALF_PTR *PHALF_PTR;
#endif
PHANDLE

HANDLE에 대한 포인터입니다.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

typedef HANDLE *PHANDLE;

PHKEY

HKEY에 대한 포인터입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef HKEY *PHKEY;

파인트

INT에 대한 포인터입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef int *PINT;

PINT_PTR

INT_PTR 대한 포인터입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef INT_PTR *PINT_PTR;

PINT8

INT8에 대한 포인터입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef INT8 *PINT8;

PINT16

INT16에 대한 포인터입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef INT16 *PINT16;

PINT32

INT32에 대한 포인터입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef INT32 *PINT32;

PINT64

INT64에 대한 포인터입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef INT64 *PINT64;

PLCID

LCID에 대한 포인터입니다.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

typedef PDWORD PLCID;

PLONG

LONG에 대한 포인터입니다.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

typedef LONG *PLONG;

PLONGLONG

LONGLONG에 대한 포인터입니다.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

typedef LONGLONG *PLONGLONG;

PLONG_PTR

LONG_PTR 대한 포인터입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef LONG_PTR *PLONG_PTR;

PLONG32

LONG32에 대한 포인터입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef LONG32 *PLONG32;

PLONG64

LONG64에 대한 포인터입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef LONG64 *PLONG64;

POINTER_32

32비트 포인터입니다. 32비트 시스템에서는 네이티브 포인터입니다. 64비트 시스템에서 잘린 64비트 포인터입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

C++
#if defined(_WIN64)
#define POINTER_32 __ptr32
#else
#define POINTER_32
#endif
POINTER_64

64비트 포인터입니다. 64비트 시스템에서는 네이티브 포인터입니다. 32비트 시스템에서는 기호 확장 32비트 포인터입니다.

높은 포인터 비트의 상태를 가정하는 것은 안전하지 않습니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

C++
#if (_MSC_VER >= 1300)
#define POINTER_64 __ptr64
#else
#define POINTER_64
#endif
POINTER_SIGNED

서명된 포인터입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

#define POINTER_SIGNED __sptr

POINTER_UNSIGNED

서명되지 않은 포인터입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

#define POINTER_UNSIGNED __uptr

PSHORT

SHORT에 대한 포인터입니다.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

typedef SHORT *PSHORT;

PSIZE_T

SIZE_T 대한 포인터입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef SIZE_T *PSIZE_T;

PSSIZE_T

SSIZE_T 대한 포인터입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef SSIZE_T *PSSIZE_T;

PSTR

ANSI(8비트 Windows) 문자의 null로 끝나는 문자열에 대한 포인터입니다. 자세한 내용은 글꼴에 사용되는 문자 집합을 참조하세요.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

typedef CHAR *PSTR;

PTBYTE

TBYTE에 대한 포인터입니다.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

typedef TBYTE *PTBYTE;

PTCHAR

TCHAR에 대한 포인터입니다.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

typedef TCHAR *PTCHAR;

PTSTR

UNICODE가 정의된 경우 PWSTR이고, 그렇지 않으면 PSTR입니다. 자세한 내용은 문자열용 Windows 데이터 형식을 참조하세요.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

C++
#ifdef UNICODE
 typedef LPWSTR PTSTR;
#else typedef LPSTR PTSTR;
#endif
PUCHAR

UCHAR에 대한 포인터입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef UCHAR *PUCHAR;

PUHALF_PTR

UHALF_PTR 대한 포인터입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

C++
#ifdef _WIN64
 typedef UHALF_PTR *PUHALF_PTR;
#else
 typedef UHALF_PTR *PUHALF_PTR;
#endif
PUINT

UINT에 대한 포인터입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef UINT *PUINT;

PUINT_PTR

UINT_PTR 대한 포인터입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef UINT_PTR *PUINT_PTR;

PUINT8

UINT8에 대한 포인터입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef UINT8 *PUINT8;

PUINT16

UINT16에 대한 포인터입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef UINT16 *PUINT16;

PUINT32

UINT32에 대한 포인터입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef UINT32 *PUINT32;

PUINT64

UINT64에 대한 포인터입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef UINT64 *PUINT64;

PULONG

ULONG에 대한 포인터입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef ULONG *PULONG;

PULONGLONG

ULONGLONG에 대한 포인터입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef ULONGLONG *PULONGLONG;

PULONG_PTR

ULONG_PTR 대한 포인터입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef ULONG_PTR *PULONG_PTR;

PULONG32

ULONG32에 대한 포인터입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef ULONG32 *PULONG32;

PULONG64

ULONG64에 대한 포인터입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef ULONG64 *PULONG64;

PUSHORT

USHORT에 대한 포인터입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef USHORT *PUSHORT;

PVOID

모든 형식에 대한 포인터입니다.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

typedef void *PVOID;

PWCHAR

WCHAR에 대한 포인터입니다.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

typedef WCHAR *PWCHAR;

PWORD

WORD에 대한 포인터입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef WORD *PWORD;

PWSTR

null로 끝나는 16비트 유니코드 문자 문자열에 대한 포인터입니다. 자세한 내용은 글꼴에 사용되는 문자 집합을 참조하세요.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

typedef WCHAR *PWSTR;

Qword

64비트 부호 없는 정수입니다.

이 형식은 다음과 같이 선언됩니다.

typedef unsigned __int64 QWORD;

SC_HANDLE

서비스 제어 관리자 데이터베이스에 대한 핸들입니다. 자세한 내용은 SCM 핸들을 참조하세요.

이 형식은 다음과 같이 WinSvc.h에서 선언됩니다.

typedef HANDLE SC_HANDLE;

SC_LOCK

서비스 제어 관리자 데이터베이스에 대한 잠금입니다. 자세한 내용은 SCM 핸들을 참조하세요.

이 형식은 다음과 같이 WinSvc.h에서 선언됩니다.

typedef LPVOID SC_LOCK;

SERVICE_STATUS_HANDLE

서비스 상태 값에 대한 핸들입니다. 자세한 내용은 SCM 핸들을 참조하세요.

이 형식은 다음과 같이 WinSvc.h에서 선언됩니다.

typedef HANDLE SERVICE_STATUS_HANDLE;

짧은

16비트 정수입니다. 범위는 -32768에서 32767 10진수입니다.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

typedef short SHORT;

Size_t

포인터가 가리킬 수 있는 최대 바이트 수입니다. 포인터의 전체 범위에 걸쳐 있어야 하는 개수에 사용합니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef ULONG_PTR SIZE_T;

SSIZE_T

서명된 버전의 SIZE_T.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef LONG_PTR SSIZE_T;

TBYTE

유니코드가 정의된 경우 WCHAR이고, 그렇지 않으면 CHAR입니다.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

C++
#ifdef UNICODE
 typedef WCHAR TBYTE;
#else
 typedef unsigned char TBYTE;
#endif
Tchar.h

유니코드가 정의된 경우 WCHAR이고, 그렇지 않으면 CHAR입니다.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

C++
#ifdef UNICODE
 typedef WCHAR TCHAR;
#else
 typedef char TCHAR;
#endif
UCHAR

서명되지 않은 CHAR입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef unsigned char UCHAR;

UHALF_PTR

서명되지 않은 HALF_PTR. 포인터와 두 개의 작은 필드가 포함된 구조체 내에서 를 사용합니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

C++
#ifdef _WIN64
 typedef unsigned int UHALF_PTR;
#else
 typedef unsigned short UHALF_PTR;
#endif
Uint

서명되지 않은 INT입니다. 범위는 0부터 4294967295 소수입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef unsigned int UINT;

UINT_PTR

서명되지 않은 INT_PTR.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

C++
#if defined(_WIN64)
 typedef unsigned __int64 UINT_PTR;
#else
 typedef unsigned int UINT_PTR;
#endif
UINT8

서명되지 않은 INT8입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef unsigned char UINT8;

UINT16

서명되지 않은 INT16입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef unsigned short UINT16;

Uint32

서명되지 않은 INT32입니다. 범위는 0부터 4294967295 소수입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef unsigned int UINT32;

Uint64

서명되지 않은 INT64입니다. 범위는 0부터 18446744073709551615 소수입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef unsigned __int64 UINT64;

Ulong

서명되지 않은 LONG입니다. 범위는 0부터 4294967295 소수입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef unsigned long ULONG;

ULONGLONG

64비트 부호 없는 정수입니다. 범위는 0부터 18446744073709551615 소수입니다.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

C++
#if !defined(_M_IX86)
 typedef unsigned __int64 ULONGLONG;
#else
 typedef double ULONGLONG;
#endif
ULONG_PTR

서명되지 않은 LONG_PTR.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

C++
#if defined(_WIN64)
 typedef unsigned __int64 ULONG_PTR;
#else
 typedef unsigned long ULONG_PTR;
#endif
ULONG32

서명되지 않은 LONG32입니다. 범위는 0부터 4294967295 소수입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef unsigned int ULONG32;

ULONG64

서명되지 않은 LONG64입니다. 범위는 0부터 18446744073709551615 소수입니다.

이 형식은 다음과 같이 BaseTsd.h에서 선언됩니다.

typedef unsigned __int64 ULONG64;

UNICODE_STRING

유니코드 문자열입니다.

이 형식은 다음과 같이 Winternl.h에서 선언됩니다.

C++
typedef struct _UNICODE_STRING {
  USHORT  Length;
  USHORT  MaximumLength;
  PWSTR  Buffer;
} UNICODE_STRING;
typedef UNICODE_STRING *PUNICODE_STRING;
typedef const UNICODE_STRING *PCUNICODE_STRING;
Ushort

서명되지 않은 SHORT입니다. 범위는 0에서 65535 10진수입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef unsigned short USHORT;

Usn

USN(업데이트 시퀀스 번호)입니다.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

typedef LONGLONG USN;

Void

모든 유형입니다.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

#define VOID void

Wchar

16비트 유니코드 문자입니다. 자세한 내용은 글꼴에 사용되는 문자 집합을 참조하세요.

이 형식은 다음과 같이 WinNT.h에서 선언됩니다.

typedef wchar_t WCHAR;

WINAPI

시스템 함수에 대한 호출 규칙입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

#define WINAPI __stdcall

CALLBACK, WINAPIAPIENTRY 는 모두 __stdcall 호출 규칙을 사용하여 함수를 정의하는 데 사용됩니다. Windows API의 대부분의 함수는 WINAPI를 사용하여 선언됩니다. 콜백 함수를 콜백 함수로 식별하는 데 도움이 되도록 구현하는 콜백 함수에 대해 CALLBACK 을 사용할 수 있습니다.

단어

16비트 부호 없는 정수입니다. 범위는 0에서 65535 10진수입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef unsigned short WORD;

Wparam

메시지 매개 변수입니다.

이 형식은 다음과 같이 WinDef.h에서 선언됩니다.

typedef UINT_PTR WPARAM;

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버
Windows Server 2003 [데스크톱 앱만 해당]
헤더
BaseTsd.h;
WinDef.h;
WinNT.h