www.pudn.com > WINCEOS.zip > hidpkt.h


// 
// Copyright (c) Microsoft Corporation.  All rights reserved. 
// 
// 
// This source code is licensed under Microsoft Shared Source License 
// Version 1.0 for Windows CE. 
// For a copy of the license visit http://go.microsoft.com/fwlink/?LinkId=3223. 
// 
#if ! defined (__hidpkt_H__) 
#define __hidpkt_H__        1 
 
#define BTHHID_TYPICAL_PAYLOAD    64 
 
class BTHHIDPacket 
{ 
public: 
    BTHHIDPacket(); 
    BTHHIDPacket(BYTE* pPayload, int cbBuffer); 
    ~BTHHIDPacket(); 
 
    void ReleasePayload(); 
 
    void SetReportType(E_BTHID_REPORT_TYPES iReportType); 
    void SetHeader(BYTE bHeader); 
    void SetPayload(BYTE* pbPayload, int cbPayload);     // no copying 
    void SetMTU(int iMTU); 
    void SetOwner(void *lpOwner); 
 
    E_BTHID_REPORT_TYPES GetReportType() const; 
    BYTE GetHeader() const; 
    int  GetMTU() const; 
    void *GetOwner() const; 
    void GetPayload(BYTE** ppbPayload, int* pcbPayload) const; // no copying 
 
    // Copies to and from pbPayload 
    BOOL AddPayloadChunk(BYTE* pbPayload, int cbPayload); 
    BOOL GetPayloadChunk(BYTE* pbPayload, int cbPayload, int* pcbTransfered); 
 
    void *operator new (size_t iSize); 
    void operator delete(void *ptr); 
 
private: 
    BTHHIDPacket(const BTHHIDPacket& packet); // shouldn't need that 
 
    BYTE  m_bHeader; 
    BYTE* m_pbPayload; 
    int   m_cbPayload; 
    int   m_cbRemaining; 
    int   m_iMTU; 
 
    void  *m_pOwner; 
    E_BTHID_REPORT_TYPES m_iReportType; 
 
    unsigned char m_ucBuffer[BTHHID_TYPICAL_PAYLOAD]; 
}; 
 
int BthPktInitAllocator (void); 
int BthPktFreeAllocator (void); 
 
#endif