NAME

Win32::API::Type - C type support package for Win32::API

SYNOPSIS

use Win32::API;

Win32::API::Type->typedef( 'my_number', 'LONG' );

ABSTRACT

This module is a support package for Win32::API that implements C types for the import with prototype functionality.

See Win32::API for more info about its usage.

DESCRIPTION

This module is automatically imported by Win32::API, so you don't need to 'use' it explicitly. These are the methods of this package:

typedef NAME, TYPE

This method defines a new type named NAME. This actually just creates an alias for the already-defined type TYPE, which you can use as a parameter in a Win32::API call.

When TYPE contains a Win32::API::Struct type declared with "typedef" in Win32::API::Struct with " *" postfixed to TYPE parameter, NAME will be a alias for the pointer version of the struct type. Creating an alias for a struct type is not supported, you have to call "typedef" in Win32::API::Struct again. Passing a struct type as TYPE without the " *" postfix is not supported.

Warns and returns undef if TYPE is unknown, else returns true.

sizeof TYPE

This returns the size, in bytes, of TYPE. Acts just like the C function of the same name.

is_known TYPE

Returns true if TYPE is known by Win32::API::Type, false otherwise.

SUPPORTED TYPES

This module should recognize all the types defined in the Win32 Platform SDK header files. Please see the source for this module, in the __DATA__ section, for the full list.

NOTES ON SELECT TYPES

LPVOID

Due to poor design, currently LPVOID is a char *, a string, not a number. It should really be a number. It is suggested to replace LPVOID in your C prototypes passed to Win32::API with UINT_PTR which is a pointer sized number.

SOMETYPE **

Currently ** types do not parse.

void **

Replace void ** in your C prototype that you pass to Win32::API::More with LPHANDLE.

unsigned char
signed char

These 2 types by name force numeric handling. 97 not "a". UCHAR is not a unsigned char for numeric handling purposess.

AUTHOR

Aldo Calpini ( dada@perl.it ).

MAINTAINER

Cosimo Streppone ( cosimo@cpan.org ).