From: http://blog.sina.com.cn/s/blog_4d66279f010009d9.html
Description of basic data types corresponding to Data Types
Boolean int
BSTR unsigned short * 32-bit character pointer
Byte unsigned char 8-bit unsigned integer
Colorref unsigned long is used as the 32-bit color value.
DWORD unsigned long 32-bit unsigned integer, segment address and related offset address
Long long 32-bit signed integer
Lparam Long is the 32-bit value that is passed to the window process or callback function as a parameter.
Lpcstr const char * points to the 32-bit pointer of A String constant
Lpstr char * points to the 32-bit pointer of the string
Lpctstr const char * points to the 32-bit pointer to the portable Unicode and DBCS string constants
Lptstr char * points to a 32-bit pointer that can be transplanted to Unicode and DBCS strings
Lpvoid void * points to a 32-bit pointer of undefined type
Lresult long is a 32-bit return value from the window process or callback function.
Uint unsigned int 32-bit unsigned integer
Word unsigned short 16-bit unsigned integer
Wparam unsigned Int Is the 32-bit value passed to the window process or callback function as a parameter.
Wndproc long (_ stdcall *) points to the 32-bit pointer of The Window Process
(Void *, unsigned int, unsigned int, long)
Lpvoid is a non-typed pointer, that is, you can assign any type of pointer to a variable of the lpvoid type (usually passed as a parameter), and then convert it back when using it.
For example:
Class cmyclass
{
Void start ();
Static uint startthread (lpvoid lparam );
};
Void cmyclass: Start ()
{
Afxbeginthread (startthread, this );
}
Uint cmyclass: startthread (lpvoid lparam)
{
Cmyclass * pmyclass = (cmyclass *) lparam;
...
Return 0;
}