%double

double

%long

ACCESS_MASK
BOOL
BOOLEAN
BYTE
DWORD
FILE_INFORMATION_CLASS
FS_INFORMATION_CLASS
HANDLE
HMODULE
INT
KEY_INFORMATION_CLASS
KEY_VALUE_INFORMATION_CLASS
LONG
NTSTATUS
OBJECT_INFORMATION_CLASS
PROCESSINFOCLASS
SECTION_INHERIT
SECURITY_IMPERSONATION_LEVEL
SECURITY_INFORMATION
SIZE_T
SYSTEM_INFORMATION_CLASS
THREADINFOCLASS
TIMER_TYPE
TOKEN_TYPE
UINT
ULONG
WCHAR

%long # --forbidden

int
long
size_t
unsigned int
unsigned long

%longlong

LONGLONG
ULONGLONG

%ptr

CONTEXT *
CONTEXT86 *
DWORD *
EXCEPTION_FRAME *
EXCEPTION_RECORD *
FILETIME *
HANDLE *
INT *
LARGE_INTEGER *
LPBYTE
LPDWORD
LPDWORD *
LPRTL_RWLOCK
LPVOID
LPVOID *
LPWSTR *
OBJECT_ATTRIBUTES *
PACE_HEADER
PACE_HEADER *
PACL
PACL *
PBOOLEAN
PDWORD
PEXCEPTION_FRAME
PEXCEPTION_RECORD
PGENERIC_MAPPING
PHANDLE
PIMAGE_NT_HEADERS
PIO_APC_ROUTINE
PIO_STATUS_BLOCK
PLARGE_INTEGER
PLUID
POBJDIR_INFORMATION
POBJECT_ATTRIBUTES
PPRIVILEGE_SET
PRTL_HEAP_DEFINITION
PSECURITY_DESCRIPTOR
PSECURITY_DESCRIPTOR_CONTROL
PSID
PSID *
PSID_IDENTIFIER_AUTHORITY
PSTRING
PTIME_FIELDS
PTIMERAPCROUTINE
PTOKEN_PRIVILEGES
PULONG
PUNICODE_STRING
PVOID
PVOID *
RTL_CRITICAL_SECTION *
STRING *
UINT *
ULONGLONG *
UNICODE_STRING *
VOID *
struct _TEB *
void *

%ptr --extension

EXCEPTION_FRAME **
GUID *
WCHAR *
WCHAR ***
char *
char ***
enum __DEBUG_CLASS
enum request
va_list

%str

LPSTR
LPCSTR

%void

void
VOID

%wstr

LPCWSTR
LPWSTR
