Posted in a previous thread was some Python code for accessing Window's Simple MAPI api using the ctypes module.
http://groups-beta.google.com/group/comp.lang.python/msg/56fa74cdba9b7be9 This Simple MAPI module was Ian's completed version of an example I had posted in an earlier message. In it I had to set some pointer fields in a C structure to NULL. I was not happy with the solution I used so I made an inquiry on the ctypes-users mailing list. Thanks to Thomas Heller I got some answers. The simplest way to create a NULL pointer instance in ctypes is to call the pointer class without an argument. from ctypes import POINTER, c_int INT_P = POINTER(c_int) # A pointer to a C integer p = INT_P() # An INT_P instance set to NULL When the pointer is a member of a structure things are a little different. For the ctypes primatives c_void_p, c_char_p and c_wchar_p one can simply use None to set the field NULL. from ctypes import Structure, c_void_p class STRUCT(Structure): _fields_ = [('voidptr', c_void_p)] s=STRUCT( None ) # Create an instance with voidptr field NULL This is documented in the ctypes tutorial. A problem with ctypes 0.9.2 prevents using None to initialize POINTER derived fields. This has been fixed so future releases will allow it. In the meantime the following will work. class IPSTRUCT(Structure): _fields_ [('intptr'), INT_P] s=IPSTRUCT( INT_P() ) A null pointer of the correct type is assigned to the field. I hope this clears up any confusion my Simple MAPI example may have caused regarding ctypes pointers. Lenard Lindstrom <[EMAIL PROTECTED]> -- http://mail.python.org/mailman/listinfo/python-list