Hello,

I have a problem with calling Callback function with Python. I have a
DLL file.

Below is a description in documentation.
        FUNCTION Callback
                Arguments: Callback ID integer read-only, immediate value
                CBackProc address read-only, immediate value
                Returns: status
                        The Callback routine registers the callback routine for
notification of a link state change.
                        The callback procedure provided by the application must 
accept one
parameter:
                                the address of the structure containing the 
data.

                CallbackID An integer identifying the callback routine being
provided to the API. Can be one of 1 or 2.
                CBackProc The address of the callback procedure that the API 
will
execute.

                This procedure must accept one parameter, of type 
LinkStateStruct,
passed by reference.

                LinkStateStruct read-only, by reference
                OldState: byte
                NewState byte

                The routine will return one of the following error codes:
                1 - The callback address was successfully registered by the API.
                2 - The API has not been initialised.
                3 - The CallbackID value was not recognised as a valid link 
state
callback.

Here is my little code in Python:

from ctypes import *
class LinkStateStruct(Structure):
    _fields_ = [("OldState", c_byte),
                ("NewState", c_byte)]
demoapi=windll.LoadLibrary("D:\\DEMO.dll")
#DECLARE CALLBACK FUNCTION
g_HLSC = CFUNCTYPE(c_int, POINTER(LinkStateStruct))
def py_g_HLSC(x):
    print "CALLBACK__py_g_HLSC_FIRED->", x
    return 0
g__HLSC = g_HLSC(py_g_HLSC)
status=demoapi.Callback(1,g__HLSC)
print "Status=",status

My result is:
Status= 1

But Callback function is not executed. If think that i call g__HLSC
witohout paramter that in document "The callback procedure

provided by the application must accept one parameter: the address of
the structure containing the data.". I don't now how to do.

Please help.

Best regards,
Gregory
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to