class CONN_API_CLASS CCONACINotify
{
public:
    DWORD StartListening(void *);
    DWORD StopListening(void *);
public:
    virtual DWORD CIChangePackages(struct CONAPI_DEVICE *,unsigned long,unsigned long,unsigned char *,unsigned long *,unsigned char * *,unsigned long);
    virtual DWORD CISessionCanceled(struct CONAPI_DEVICE *,unsigned long);
};


class CONN_API_CLASS CCONASANotify
{
public:
    DWORD StartListening(void *);
    DWORD StopListening(void *);
public:
    virtual DWORD ConnectionLost(unsigned long);
    virtual DWORD OperationState(unsigned long,unsigned long,unsigned long,unsigned long);
};

// sync notifications
CONN_API CONAOpenCI(a,b,c,d);
CONN_API CONACloseCI(a);
CONN_API CONACICancelSession(a);
CONN_API CONARegisterCINotifyCallback(a,b,c,d);
CONN_API CONARegisterSyncAPICINotifyIF(a,b,c);

// mediahandler
CONN_API CONAOpenMM(a,b);
CONN_API CONACloseMM(a);
CONN_API CONAMMFreeMediaStructures(a,b);
CONN_API CONAMMGetMedia(a,b,c);
CONN_API CONAMMSetMedia(a,b);
CONN_API CONARegisterMMNotifyCallback(a,b,c);

// status notifications
CONN_API CONAOpenSA(a,b,c,d,e);
CONN_API CONACloseSA(a);
CONN_API CONARegisterSANotifyCallback(a,b,c);
CONN_API CONARegisterSyncAPISANotifyIF(a,b,c);
// ISyncService
CONN_API CONASACancelPackage(a);
CONN_API CONASAGetPackage(a,b,c,d,e);
CONN_API CONASAPutPackage(a,b,c,d,e);

struct device_info {
    DWORD a;
    WCHAR *b;
    WCHAR *c;
    WCHAR *d;
    WCHAR *e;
    DWORD f;
    DWORD g;
};
CONN_API CONAGetDeviceInfo(DMHANDLE dm, CONAPI_DEVICE*dev, int val_0x10000, struct device_info *pdi);
CONN_API CONAFreeDeviceInfoStructure(int val_0x10000, struct device_info *pdi);


CONN_API CONAGetFolderInfo(a, b, c, d, e, f);
CONN_API CONAFreeFolderContentStructure(a);

CONN_APIEX(void*) CONAAllocMemory(DWORD size);
CONN_API CONAFreeMemory(void *pmem,DWORD size);

CONN_APIEX(void*) CONAAllocSyncDataMemory(DWORD size);
CONN_API CONAFreeSyncDataMemory(void *pmem);

CONN_API CONARegisterDMNotifyIF(a,b,c);
CONN_API CONARegisterFSNotifyIF(a,b,c);
CONN_API CONARegisterMCNotifyIF(a,b,c);
CONN_API CONASetDeviceListOption(a,b,c);

CONN_API DMAPI_GetAPIVersion(); // == 30
CONN_API DMAPI_Initialize(int version, int val_0);
CONN_API DMAPI_Terminate(int val_0);

CONN_API FSAPI_GetAPIVersion(); // == 30
CONN_API FSAPI_Initialize(int version, int val_0);
CONN_API FSAPI_Terminate(int val_0);

CONN_API MCAPI_GetAPIVersion(); // == 30
CONN_API MCAPI_Initialize(int version, int val_0);
CONN_API MCAPI_Terminate(int val_0);

CONN_API SyncAPI_GetAPIVersion(); // == 30
CONN_API SyncAPI_Initialize(int version, int val_0);
CONN_API SyncAPI_Terminate(int val_0);

CONN_API CFAPI_GetAPIVersion(); // == 10
CONN_API CFAPI_Initialize(int version, int val_0);
CONN_API CFAPI_Terminate(int val_0);

//DllCanUnloadNow
//DllGetClassObject
//DllRegisterServer
//DllUnregisterServer

