Windows-Datentypen

Die von Windows unterstützten Datentypen werden verwendet, um Funktionsrückgabewerte, Funktions- und Nachrichtenparameter und Strukturelemente zu definieren. Sie definieren die Größe und Bedeutung dieser Elemente. Weitere Informationen zu den zugrunde liegenden C/C++-Datentypen finden Sie unter Datentypbereiche.

Die folgende Tabelle enthält die folgenden Typen: Zeichen, ganze Zahl, Boolean, Zeiger und Handle. Die Typen "Zeichen", "ganzzahl" und "Boolean" sind für die meisten C-Compiler häufig. Die meisten Zeigertypnamen beginnen mit einem Präfix von P oder LP. Handle verweisen auf eine Ressource, die in den Arbeitsspeicher geladen wurde.

Weitere Informationen zum Behandeln von 64-Bit-Ganzzahlen finden Sie unter "Große Ganze Zahlen".

Datentyp BESCHREIBUNG
APIENTRY Die Aufrufkonvention für Systemfunktionen.
Dieser Typ wird in WinDef.h wie folgt deklariert:
#define APIENTRY WINAPI
ATOM Ein Atom. Weitere Informationen finden Sie unter "Informationen zu AtomTabellen".
Dieser Typ wird in WinDef.h wie folgt deklariert:
typedef WORD ATOM;
BOOL Eine boolesche Variable (sollte WAHR oder FALSCH sein).
Dieser Typ wird in WinDef.h wie folgt deklariert:
typedef int BOOL;
BOOLEAN Eine boolesche Variable (sollte WAHR oder FALSCH sein).
Dieser Typ wird in WinNT.h wie folgt deklariert:
typedef BYTE BOOLEAN;
BYTE Ein Byte (8 Bit).
Dieser Typ wird in WinDef.h wie folgt deklariert:
typedef unsigned char BYTE;
RÜCKRUF Die Aufrufkonvention für Rückruffunktionen.
Dieser Typ wird in WinDef.h wie folgt deklariert:
#define CALLBACK __stdcall
CALLBACK, WINAPI und APIENTRY werden alle zum Definieren von Funktionen mit der __stdcall aufrufenden Konvention verwendet. Die meisten Funktionen in der Windows-API werden mithilfe von WINAPI deklariert. Möglicherweise möchten Sie CALLBACK für die Rückruffunktionen verwenden, die Sie implementieren, um die Funktion als Rückruffunktion zu identifizieren.
CCHAR Ein 8-Bit-Windows (ANSI)-Zeichen.
Dieser Typ wird in WinNT.h wie folgt deklariert:
typedef char CCHAR;
CHAR Ein 8-Bit-Windows (ANSI)-Zeichen. Weitere Informationen finden Sie unter Zeichensätze, die von Schriftarten verwendet werden.
Dieser Typ wird in WinNT.h wie folgt deklariert:
typedef char CHAR;
COLORREF Der Farbwert rot, grün, blau (RGB) (32 Bit). Informationen zu diesem Typ finden Sie unter COLORREF .
Dieser Typ wird in WinDef.h wie folgt deklariert:
typedef DWORD COLORREF;
CONST Eine Variable, deren Wert während der Ausführung konstant bleiben soll.
Dieser Typ wird in WinDef.h wie folgt deklariert:
#define CONST const
DWORD Eine 32-Bit-Ganzzahl ohne Vorzeichen. Der Bereich ist 0 bis 4294967295 Dezimalstellen.
Dieser Typ wird in IntSafe.h wie folgt deklariert:
typedef unsigned long DWORD;
DWORDLONG Eine 64-Bit-Ganzzahl ohne Vorzeichen. Der Bereich ist 0 bis 18446744073709551615 Dezimalzahl.
Dieser Typ wird in IntSafe.h wie folgt deklariert:
typedef unsigned __int64 DWORDLONG;
DWORD_PTR Ein nicht signierter langer Typ für die Zeigergenauigkeit. Verwenden Sie beim Umwandeln eines Zeigers auf einen langen Typ, um Zeigerarithmetik auszuführen. (Auch häufig für allgemeine 32-Bit-Parameter verwendet, die auf 64 Bit in 64-Bit-Windows erweitert wurden.)
Dieser Typ wird in BaseTsd.h wie folgt deklariert:
typedef ULONG_PTR DWORD_PTR;
DWORD32 Eine 32-Bit-Ganzzahl ohne Vorzeichen.
Dieser Typ wird in BaseTsd.h wie folgt deklariert:
typedef unsigned int DWORD32;
DWORD64 Eine 64-Bit-Ganzzahl ohne Vorzeichen.
Dieser Typ wird in BaseTsd.h wie folgt deklariert:
typedef unsigned __int64 DWORD64;
SCHWEBEN Eine Gleitkommavariable.
Dieser Typ wird in WinDef.h wie folgt deklariert:
typedef float FLOAT;
HACCEL Ein Handle für eine Zugriffstastentabelle.
Dieser Typ wird in WinDef.h wie folgt deklariert:
typedef HANDLE HACCEL;
HALF_PTR Die Hälfte der Größe eines Zeigers. Verwenden Sie in einer Struktur, die einen Zeiger und zwei kleine Felder enthält.
Dieser Typ wird in BaseTsd.h wie folgt deklariert:
C++
#ifdef _WIN64
 typedef int HALF_PTR;
#else
 typedef short HALF_PTR;
#endif
BEHANDELN

Ein Handle zu einem Objekt.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef PVOID HANDLE;

HBITMAP

Ein Handle zu einer Bitmap.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HBITMAP;

HBRUSH

Ein Ziehpunkt zu einem Pinsel.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HBRUSH;

HCOLORSPACE

Ein Handle zu einem Farbraum.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HCOLORSPACE;

HCONV

Ein Handle zu einer DDE-Unterhaltung (Dynamic Data Exchange).

Dieser Typ wird in Ddeml.h wie folgt deklariert:

typedef HANDLE HCONV;

HCONVLIST

Ein Handle zu einer DDE-Unterhaltungsliste.

Dieser Typ wird in Ddeml.h wie folgt deklariert:

typedef HANDLE HCONVLIST;

HCURSOR

Ein Handle zu einem Cursor.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HICON HCURSOR;

HDC

Ein Handle zu einem Gerätekontext (DC).

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HDC;

HDDEDATA

Ein Handle zu DDE-Daten.

Dieser Typ wird in Ddeml.h wie folgt deklariert:

typedef HANDLE HDDEDATA;

HDESK

Ein Handle auf einem Desktop.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HDESK;

HDROP

Ein Handle zu einer internen Drop-Struktur.

Dieser Typ wird in ShellApi.h wie folgt deklariert:

typedef HANDLE HDROP;

HDWP

Ein Handle zu einer verzögerten Fensterpositionsstruktur.

Dieser Typ wird in WinUser.h wie folgt deklariert:

typedef HANDLE HDWP;

HENHMETAFILE

Ein Handle zu einer erweiterten Metadatei.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HENHMETAFILE;

HFILE

Ein Handle zu einer von OpenFile geöffneten Datei, nicht "CreateFile".

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef int HFILE;

HFONT

Ein Handle zu einer Schriftart.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HFONT;

HGDIOBJ

Ein Handle zu einem GDI-Objekt.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HGDIOBJ;

HGLOBAL

Ein Handle zu einem globalen Speicherblock.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HGLOBAL;

HHOOK

Ein Griff zu einem Hook.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HHOOK;

HICON

Ein Handle zu einem Symbol.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HICON;

HINSTANCE

Ein Handle zu einer Instanz. Dies ist die Basisadresse des Moduls im Arbeitsspeicher.

HMODULE und HINSTANCE sind heute identisch, aber verschiedene Dinge in 16-Bit-Windows dargestellt.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HINSTANCE;

HKEY

Ein Handle zu einem Registrierungsschlüssel.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HKEY;

HKL

Ein Eingabegebietsschemabezeichner.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HKL;

HLOCAL

Ein Handle zu einem lokalen Speicherblock.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HLOCAL;

HMENU

Ein Handle zu einem Menü.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HMENU;

HMETAFILE

Ein Handle zu einer Metadatei.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HMETAFILE;

HMODULE

Ein Handle zu einem Modul. Dies ist die Basisadresse des Moduls im Arbeitsspeicher.

HMODULE und HINSTANCE sind in den aktuellen Versionen von Windows identisch, haben jedoch unterschiedliche Elemente in 16-Bit-Windows dargestellt.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HINSTANCE HMODULE;

HMONITOR

Ein Handle zu einem Anzeigemonitor.

Dieser Typ wird in WinDef.h wie folgt deklariert:

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

HPALETTE

Ein Handle zu einer Palette.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HPALETTE;

HPEN

Ein Handle an einen Stift.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HPEN;

HRESULT

Die von COM-Schnittstellen verwendeten Rückgabecodes. Weitere Informationen finden Sie unter Struktur der COM-Fehlercodes. Um einen HRESULT-Wert zu testen, verwenden Sie die MAKROS FEHLER und ERFOLGREICH .

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef LONG HRESULT;

HRGN

Ein Handle zu einer Region.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HRGN;

HRSRC

Ein Handle zu einer Ressource.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HRSRC;

HSZ

Ein Handle zu einer DDE-Zeichenfolge.

Dieser Typ wird in Ddeml.h wie folgt deklariert:

typedef HANDLE HSZ;

HWINSTA

Ein Handle zu einer Fensterstation.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE WINSTA;

HWND

Ein Handle zu einem Fenster.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE HWND;

INT

Eine 32-Bit-Ganzzahl mit Vorzeichen. Der Bereich ist -2147483648 bis 2147483647 Dezimalzahl.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef int INT;

INT_PTR

Ein signierter ganzzahliger Typ für zeigergenauigkeit. Verwenden Sie beim Umwandeln eines Zeigers auf eine ganze Zahl, um Zeigerarithmetik auszuführen.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

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

Eine 8-Bit-Ganzzahl mit Vorzeichen.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef signed char INT8;

INT16

Eine 16-Bit-Ganzzahl mit Vorzeichen.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef signed short INT16;

INT32

Eine 32-Bit-Ganzzahl mit Vorzeichen. Der Bereich ist -2147483648 bis 2147483647 Dezimalzahl.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef signed int INT32;

INT64

Eine 64-Bit-Ganzzahl mit Vorzeichen. Der Bereich ist -9223372036854775808 bis 9223372036854775807 Dezimalstellen.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef signed __int64 INT64;

LANGID

Ein Sprachbezeichner. Weitere Informationen finden Sie unter Sprachbezeichner.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef WORD LANGID;

LCID

Ein Gebietsschemabezeichner. Weitere Informationen finden Sie unter Gebietsschemabezeichner.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef DWORD LCID;

LCTYPE

Ein Gebietsschemainformationstyp. Eine Liste finden Sie unter Gebietsschemainformationskonstanten.

Dieser Typ wird in WinNls.h wie folgt deklariert:

typedef DWORD LCTYPE;

LGRPID

Eine Sprachgruppen-ID. Eine Liste finden Sie unter EnumLanguageGroupLocales.

Dieser Typ wird in WinNls.h wie folgt deklariert:

typedef DWORD LGRPID;

LANGE

Eine 32-Bit-Ganzzahl mit Vorzeichen. Der Bereich ist -2147483648 bis 2147483647 Dezimalzahl.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef long LONG;

LONGLONG

Eine 64-Bit-Ganzzahl mit Vorzeichen. Der Bereich ist -9223372036854775808 bis 9223372036854775807 Dezimalstellen.

Dieser Typ wird in WinNT.h wie folgt deklariert:

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

Ein signierter langer Typ für die Zeigergenauigkeit. Verwenden Sie beim Umwandeln eines Zeigers auf eine lange, um Zeigerarithmetik auszuführen.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

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

Eine 32-Bit-Ganzzahl mit Vorzeichen. Der Bereich ist -2147483648 bis 2147483647 Dezimalzahl.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef signed int LONG32;

LONG64

Eine 64-Bit-Ganzzahl mit Vorzeichen. Der Bereich ist -9223372036854775808 bis 9223372036854775807 Dezimalstellen.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef __int64 LONG64;

LPARAM

Ein Nachrichtenparameter.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef LONG_PTR LPARAM;

LPBOOL

Ein Zeiger auf ein BOOL.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef BOOL far *LPBOOL;

LPBYTE

Ein Zeiger auf ein BYTE.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef BYTE far *LPBYTE;

LPCOLORREF

Ein Zeiger auf einen COLORREF-Wert .

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef DWORD *LPCOLORREF;

LPCSTR

Ein Zeiger auf eine konstante null-beendete Zeichenfolge von 8-Bit-Windows (ANSI)-Zeichen. Weitere Informationen finden Sie unter Zeichensätze, die von Schriftarten verwendet werden.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef __nullterminated CONST CHAR *LPCSTR;

LPCTSTR

Ein LPCWSTR , wenn UNICODE definiert ist, andernfalls ein LPCSTR . Weitere Informationen finden Sie unter Windows Datentypen für Zeichenfolgen.

Dieser Typ wird in WinNT.h wie folgt deklariert:

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

Ein Zeiger auf eine Konstante eines beliebigen Typs.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef CONST void *LPCVOID;

LPCWSTR

Ein Zeiger auf eine konstante null-beendete Zeichenfolge von 16-Bit-Unicode-Zeichen. Weitere Informationen finden Sie unter Zeichensätze, die von Schriftarten verwendet werden.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef CONST WCHAR *LPCWSTR;

LPDWORD

Ein Zeiger auf ein DWORD.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef DWORD *LPDWORD;

LPHANDLE

Ein Zeiger auf ein HANDLE.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HANDLE *LPHANDLE;

LPINT

Ein Zeiger auf ein INT.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef int *LPINT;

LPLONG

Ein Zeiger auf einen LONG.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef long *LPLONG;

LPSTR

Ein Zeiger auf eine null-beendete Zeichenfolge von 8-Bit-Windows (ANSI)-Zeichen. Weitere Informationen finden Sie unter Zeichensätze, die von Schriftarten verwendet werden.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef CHAR *LPSTR;

LPTSTR

Ein LPWSTR , wenn UNICODE definiert ist, andernfalls ein LPSTR . Weitere Informationen finden Sie unter Windows Datentypen für Zeichenfolgen.

Dieser Typ wird in WinNT.h wie folgt deklariert:

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

Ein Zeiger auf einen beliebigen Typ.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef void *LPVOID;

LPWORD

Ein Zeiger auf ein WORD.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef WORD *LPWORD;

LPWSTR

Ein Zeiger auf eine null-beendete Zeichenfolge von 16-Bit-Unicode-Zeichen. Weitere Informationen finden Sie unter Zeichensätze, die von Schriftarten verwendet werden.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef WCHAR *LPWSTR;

LRESULT

Signiertes Ergebnis der Nachrichtenverarbeitung.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef LONG_PTR LRESULT;

PBOOL

Ein Zeiger auf ein BOOL.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef BOOL *PBOOL;

PBOOLEAN

Ein Zeiger auf einen BOOLEAN.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef BOOLEAN *PBOOLEAN;

PBYTE

Ein Zeiger auf ein BYTE.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef BYTE *PBYTE;

PCHAR

Ein Zeiger auf ein CHAR.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef CHAR *PCHAR;

PCSTR

Ein Zeiger auf eine konstante null-beendete Zeichenfolge von 8-Bit-Windows (ANSI)-Zeichen. Weitere Informationen finden Sie unter Zeichensätze, die von Schriftarten verwendet werden.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef CONST CHAR *PCSTR;

PCTSTR

Ein PCWSTR , wenn UNICODE definiert ist, andernfalls ein PCSTR . Weitere Informationen finden Sie unter Windows Datentypen für Zeichenfolgen.

Dieser Typ wird in WinNT.h wie folgt deklariert:

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

Ein Zeiger auf eine konstante null-beendete Zeichenfolge von 16-Bit-Unicode-Zeichen. Weitere Informationen finden Sie unter Zeichensätze, die von Schriftarten verwendet werden.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef CONST WCHAR *PCWSTR;

PDWORD

Ein Zeiger auf ein DWORD.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef DWORD *PDWORD;

PDWORDLONG

Ein Zeiger auf einen DWORDLONG.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef DWORDLONG *PDWORDLONG;

PDWORD_PTR

Ein Zeiger auf eine DWORD_PTR.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef DWORD_PTR *PDWORD_PTR;

PDWORD32

Ein Zeiger auf ein DWORD32.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef DWORD32 *PDWORD32;

PDWORD64

Ein Zeiger auf ein DWORD64.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef DWORD64 *PDWORD64;

PFLOAT

Ein Zeiger auf einen FLOAT.A pointer to a FLOAT.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef FLOAT *PFLOAT;

PHALF_PTR

Ein Zeiger auf eine HALF_PTR.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

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

Ein Zeiger auf ein HANDLE.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef HANDLE *PHANDLE;

PHKEY

Ein Zeiger auf einen HKEY.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef HKEY *PHKEY;

PINT

Ein Zeiger auf ein INT.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef int *PINT;

PINT_PTR

Ein Zeiger auf eine INT_PTR.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef INT_PTR *PINT_PTR;

PINT8

Ein Zeiger auf ein INT8.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef INT8 *PINT8;

PINT16

Ein Zeiger auf ein INT16.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef INT16 *PINT16;

PINT32

Ein Zeiger auf ein INT32.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef INT32 *PINT32;

PINT64

Ein Zeiger auf ein INT64.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef INT64 *PINT64;

PLCID

Ein Zeiger auf eine LCID.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef PDWORD PLCID;

PLONG

Ein Zeiger auf einen LONG.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef LONG *PLONG;

PLONGLONG

Ein Zeiger auf einen LONGLONG.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef LONGLONG *PLONGLONG;

PLONG_PTR

Ein Zeiger auf eine LONG_PTR.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef LONG_PTR *PLONG_PTR;

PLONG32

Ein Zeiger auf ein LONG32.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef LONG32 *PLONG32;

PLONG64

Ein Zeiger auf ein LONG64.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef LONG64 *PLONG64;

POINTER_32

Ein 32-Bit-Zeiger. Auf einem 32-Bit-System ist dies ein systemeigener Zeiger. Bei einem 64-Bit-System handelt es sich um einen abgeschnittenen 64-Bit-Zeiger.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

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

Ein 64-Bit-Zeiger. Auf einem 64-Bit-System ist dies ein systemeigener Zeiger. Bei einem 32-Bit-System handelt es sich um einen sign-erweiterten 32-Bit-Zeiger.

Beachten Sie, dass es nicht sicher ist, den Zustand des Hochzeigerbits anzunehmen.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

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

Ein signierter Zeiger.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

#define POINTER_SIGNED __sptr

POINTER_UNSIGNED

Ein nicht signierter Zeiger.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

#define POINTER_UNSIGNED __uptr

PSHORT

Ein Zeiger auf eine KURZE.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef SHORT *PSHORT;

PSIZE_T

Ein Zeiger auf einen SIZE_T.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef SIZE_T *PSIZE_T;

PSSIZE_T

Ein Zeiger auf ein SSIZE_T.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef SSIZE_T *PSSIZE_T;

PSTR

Ein Zeiger auf eine null-beendete Zeichenfolge von 8-Bit-Windows (ANSI)-Zeichen. Weitere Informationen finden Sie unter "Von Schriftarten verwendete Zeichensätze".

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef CHAR *PSTR;

PTBYTE

Ein Zeiger auf ein TBYTE.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef TBYTE *PTBYTE;

PTCHAR

Ein Zeiger auf eine TCHAR.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef TCHAR *PTCHAR;

PTSTR

Ein PWSTR , wenn UNICODE definiert ist, ein PSTR andernfalls. Weitere Informationen finden Sie unter Windows Datentypen für Zeichenfolgen.

Dieser Typ wird in WinNT.h wie folgt deklariert:

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

Ein Zeiger auf eine UCHAR.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef UCHAR *PUCHAR;

PUHALF_PTR

Ein Zeiger auf einen UHALF_PTR.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

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

Ein Zeiger auf ein UINT.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef UINT *PUINT;

PUINT_PTR

Ein Zeiger auf einen UINT_PTR.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef UINT_PTR *PUINT_PTR;

PUINT8

Ein Zeiger auf ein UINT8.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef UINT8 *PUINT8;

PUINT16

Ein Zeiger auf ein UINT16.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef UINT16 *PUINT16;

PUINT32

Ein Zeiger auf ein UINT32.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef UINT32 *PUINT32;

PUINT64

Ein Zeiger auf ein UINT64.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef UINT64 *PUINT64;

PULONG

Ein Zeiger auf eine ULONG.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef ULONG *PULONG;

PULONGLONGLONG

Ein Zeiger auf eine ULONGLONG.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef ULONGLONG *PULONGLONG;

PULONG_PTR

Ein Zeiger auf einen ULONG_PTR.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef ULONG_PTR *PULONG_PTR;

PULONG32

Ein Zeiger auf ein ULONG32.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef ULONG32 *PULONG32;

PULONG64

Ein Zeiger auf ein ULONG64.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef ULONG64 *PULONG64;

PUSHORT

Ein Zeiger auf eine USHORT.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef USHORT *PUSHORT;

PVOID

Ein Zeiger auf jeden Typ.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef void *PVOID;

PWCHAR

Ein Zeiger auf eine WCHAR.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef WCHAR *PWCHAR;

PWORD

Ein Zeiger auf ein WORD.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef WORD *PWORD;

PWSTR

Ein Zeiger auf eine null-beendete Zeichenfolge von 16-Bit-Unicode-Zeichen. Weitere Informationen finden Sie unter "Von Schriftarten verwendete Zeichensätze".

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef WCHAR *PWSTR;

QWORD

Eine 64-Bit-Ganzzahl ohne Vorzeichen.

Dieser Typ wird wie folgt deklariert:

typedef unsigned __int64 QWORD;

SC_HANDLE

Ein Handle zu einer Dienststeuerungs-Manager-Datenbank. Weitere Informationen finden Sie unter SCM-Handle.

Dieser Typ wird in WinSvc.h wie folgt deklariert:

typedef HANDLE SC_HANDLE;

SC_LOCK

Eine Sperre für eine Dienststeuerungs-Manager-Datenbank. Weitere Informationen finden Sie unter SCM-Handle.

Dieser Typ wird in WinSvc.h wie folgt deklariert:

typedef LPVOID SC_LOCK;

SERVICE_STATUS_HANDLE

Ein Handle zu einem Dienststatuswert. Weitere Informationen finden Sie unter SCM-Handle.

Dieser Typ wird in WinSvc.h wie folgt deklariert:

typedef HANDLE SERVICE_STATUS_HANDLE;

KURZ

Eine 16-Bit-Ganzzahl. Der Bereich ist -32768 bis 32767 dezimal.

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef short SHORT;

SIZE_T

Die maximale Anzahl von Bytes, auf die ein Zeiger zeigen kann. Verwenden Sie eine Anzahl, die den gesamten Bereich eines Zeigers umfassen muss.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef ULONG_PTR SIZE_T;

SSIZE_T

Eine signierte Version von SIZE_T.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef LONG_PTR SSIZE_T;

TBYTE

Ein WCHAR , wenn UNICODE definiert ist, ist ein CHAR andernfalls.

Dieser Typ wird in WinNT.h wie folgt deklariert:

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

Ein WCHAR , wenn UNICODE definiert ist, ist ein CHAR andernfalls.

Dieser Typ wird in WinNT.h wie folgt deklariert:

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

Ein nicht signiertes CHAR.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef unsigned char UCHAR;

UHALF_PTR

Eine nicht signierte HALF_PTR. Verwenden Sie in einer Struktur, die einen Zeiger und zwei kleine Felder enthält.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

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

Ein nicht signiertes INT. Der Bereich beträgt 0 bis 4294967295 dezimal.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef unsigned int UINT;

UINT_PTR

Eine nicht signierte INT_PTR.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

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

Ein nicht signiertes INT8.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef unsigned char UINT8;

UINT16

Ein nicht signiertes INT16.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef unsigned short UINT16;

UINT32

Ein nicht signiertes INT32. Der Bereich beträgt 0 bis 4294967295 dezimal.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef unsigned int UINT32;

UINT64

Ein nicht signiertes INT64. Der Bereich beträgt 0 bis 18446744073709551615 dezimal.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef unsigned __int64 UINT64;

ULONG

Eine nicht signierte LONG. Der Bereich beträgt 0 bis 4294967295 dezimal.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef unsigned long ULONG;

ULONGLONG

Eine 64-Bit-Ganzzahl ohne Vorzeichen. Der Bereich beträgt 0 bis 18446744073709551615 dezimal.

Dieser Typ wird in WinNT.h wie folgt deklariert:

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

Eine nicht signierte LONG_PTR.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

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

Eine nicht signierte LONG32. Der Bereich beträgt 0 bis 4294967295 dezimal.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef unsigned int ULONG32;

ULONG64

Eine nicht signierte LONG64. Der Bereich beträgt 0 bis 18446744073709551615 dezimal.

Dieser Typ wird in BaseTsd.h wie folgt deklariert:

typedef unsigned __int64 ULONG64;

UNICODE_STRING

Eine Unicode-Zeichenfolge.

Dieser Typ wird in Winternl.h wie folgt deklariert:

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

Eine nicht signierte SHORT. Der Bereich beträgt 0 bis 65535 dezimal.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef unsigned short USHORT;

USN

Eine Updatesequenznummer (USN).

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef LONGLONG USN;

LEERE

Beliebiger Typ

Dieser Typ wird in WinNT.h wie folgt deklariert:

#define VOID void

WCHAR

Ein 16-Bit-Unicode-Zeichen. Weitere Informationen finden Sie unter "Von Schriftarten verwendete Zeichensätze".

Dieser Typ wird in WinNT.h wie folgt deklariert:

typedef wchar_t WCHAR;

WINAPI

Die Aufrufkonvention für Systemfunktionen.

Dieser Typ wird in WinDef.h wie folgt deklariert:

#define WINAPI __stdcall

CALLBACK, WINAPI und APIENTRY werden alle verwendet, um Funktionen mit der __stdcall Aufrufkonvention zu definieren. Die meisten Funktionen in der Windows-API werden mithilfe von WINAPI deklariert. Möglicherweise möchten Sie CALLBACK für die Rückruffunktionen verwenden, die Sie implementieren, um die Funktion als Rückruffunktion zu identifizieren.

WORT

Eine 16-Bit-Ganzzahl ohne Vorzeichen. Der Bereich beträgt 0 bis 65535 dezimal.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef unsigned short WORD;

WPARAM

Ein Nachrichtenparameter.

Dieser Typ wird in WinDef.h wie folgt deklariert:

typedef UINT_PTR WPARAM;

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows Server 2003 [Nur Desktop-Apps]
Header
BaseTsd.h;
WinDef.h;
WinNT.h