nanogui@linuxhacker.org

nanogui@linuxhacker.org


Subject: RE: Using create structures.
From: Greg Haerr
Date: Tue, 18 Jan 2000 10:14:49 -0700

On Monday, January 17, 2000 9:22 PM, Chris Johns  wrote:
: Hi,
: 
: In `CreateWindowEx' the CREATESTRUCT is made a parameter with the
: following code :
: 
:  	/* note: the following assignment may have to change
: 	 * if the WINAPI decl changes from cdecl
: 	 */
: 	lpcs = (LPCREATESTRUCT)&dwExStyle;    <<<<<<<<<<<
: 	if(SendMessage(wp, WM_CREATE, 0, (LPARAM)(LPSTR)lpcs) == -1) {
: 		WndDestroyWindow(wp, FALSE);
: 		return NULL;
: 	}
: 
: Should this be :
: 
:  	/* note: the following assignment may have to change
: 	 * if the WINAPI decl changes from cdecl
: 	 */
: 	lpcs = (LPCREATESTRUCT) dwExStyle;  
: 	if(SendMessage(wp, WM_CREATE, 0, (LPARAM)(LPSTR)lpcs) == -1) {
: 		WndDestroyWindow(wp, FALSE);
: 		return NULL;
: 	}

No.  The first above is tricky code that takes the address of a stack
parameter and uses it as the address of a structure that includes
all those parameters.  Check out the CREATESTRUCT definition.

Greg

nanogui@linuxhacker.org