Click here to Skip to main content

Pdaus asked:

Open original thread
Hi all,
 
Currently I'm working on Blusoleil SDK[^]. I have to create a wrapper for their library.
I have a problem on registering the callback function. The definition is something like this:
 
C++
--------
Prototype Function:
BTINT32	Btsdk_RegisterGetStatusInfoCB4ThirdParty(
Func_ReceiveBluetoothStatusInfo* statusCBK);
 
typedef void Func_ReceiveBluetoothStatusInfo(
ULONG usMsgType, ULONG pulData, ULONG param, BTUINT8 *arg);
C#
------
[DllImport("BsSdk.dll")]
        [return: MarshalAs(UnmanagedType.U4)]
        public static extern Int32  Btsdk_RegisterGetStatusInfoCB4ThirdParty(ref Func_ReceiveBluetoothStatusInfo statusCBK);
 
public delegate void  Func_ReceiveBluetoothStatusInfo (UInt32 usMsgType,UInt32 pulData,UInt32 param, ref Byte arg);
Function to test the call back :
public static void Test_RegisterGetStatusCBK()
        {
            Func_ReceiveBluetoothStatusInfo Bd = BsStatusCBKFuc;
            /* register callback function to get the status change of BlueSoleil. */
            Btsdk_RegisterGetStatusInfoCB4ThirdParty(ref Bd);
            
        }
public static void BsStatusCBKFuc(UInt32 usMsgType, UInt32 pucData, UInt32 param, ref Byte arg)
        {
            /* message received */
            switch (usMsgType)
            {
                case Hndle.BTSDK_BLUETOOTH_STATUS_FLAG:
                    {
                        switch (pucData)
                        {
                            case (uint)BluetoothState.BTSDK_BTSTATUS_TURNON:
                                {
                                    //printf("MSG: Bluetooth is turned on.\n");
                                    MessageBox.Show(@"Bluetooth is turned on");
                                    break;
                                }
                        }
                    }    
              
            }
The problem is, that the callback function doesn't hit anymore. It seem the Btsdk_RegisterGetStatusInfoCB4ThirdParty is not succesfull. Can anyone give me an idea? Was my method wrong?
Tags: C#

Preview



When answering a question please:
  1. Read the question carefully.
  2. Understand that English isn't everyone's first language so be lenient of bad spelling and grammar.
  3. If a question is poorly phrased then either ask for clarification, ignore it, or edit the question and fix the problem. Insults are not welcome.
Let's work to help developers, not make them feel stupid.
Please note that all posts will be submitted under the The Code Project Open License (CPOL).



Advertise | Privacy | Mobile
Web04 | 2.8.150224.1 | Last Updated 26 Mar 2009
Copyright © CodeProject, 1999-2015
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100