⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 obexbthtransport.h

📁 Windows CE 6.0 Server 源码
💻 H
字号:
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft shared
// source or premium shared source license agreement under which you licensed
// this source code. If you did not accept the terms of the license agreement,
// you are not authorized to use this source code. For the terms of the license,
// please see the license agreement between you and Microsoft or, if applicable,
// see the SOURCE.RTF on your install media or the root of your tools installation.
// THE SOURCE CODE IS PROVIDED "AS IS", WITH NO WARRANTIES.
//
#ifndef OBEX_BTH_TRANSPORT_H 
#define OBEX_BTH_TRANSPORT_H

#define BTH_INQUIRY_LEN		5
#define BTH_INQUIRY_SIZE	256

struct NAME_CACHE_NODE
{
	BT_ADDR ba; 
	VARIANT var;
	NAME_CACHE_NODE *pNext;
};

class CObexBTHTransport : public IObexTransport, public IObexAbortTransportEnumeration
{
public:
    CObexBTHTransport();
    ~CObexBTHTransport();

    HRESULT STDMETHODCALLTYPE Init( void);      
    HRESULT STDMETHODCALLTYPE Shutdown( void);
    
    HRESULT STDMETHODCALLTYPE CreateSocket( 
        LPPROPERTYBAG2 pPropertyBag,
        LPSOCKET __RPC_FAR *ppSocket);
    
    HRESULT STDMETHODCALLTYPE CreateSocketBlob( 
        unsigned long ulSize,
        byte __RPC_FAR *pbData,
        LPSOCKET __RPC_FAR *ppSocket);
    
    HRESULT STDMETHODCALLTYPE EnumDevices( 
        LPPROPERTYBAGENUM __RPC_FAR *ppDevices);
    
    HRESULT STDMETHODCALLTYPE EnumProperties( 
        LPPROPERTYBAG2 __RPC_FAR *ppProps);

    HRESULT STDMETHODCALLTYPE UpdateDeviceProperties( 
        LPPROPERTYBAG2 __RPC_FAR pDevice, 
        IPropertyBagEnum **ppNewlyDiscoveredDeviceBag,
        BOOL fGetJustEnoughToConnect,
        UINT *uiUpdateStatus);
    
    ULONG STDMETHODCALLTYPE AddRef();        
    ULONG STDMETHODCALLTYPE Release();        
    HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppv);   


    // IObexAbortTransportEnumeration  
    HRESULT STDMETHODCALLTYPE Abort();
    HRESULT STDMETHODCALLTYPE Resume();
    HRESULT STDMETHODCALLTYPE IsAborting(BOOL *fIsAborting);

	static int GetBA(WCHAR *pp, BT_ADDR *pba);
	
private:
     ULONG _refCount;
     BOOL fIsAborting;
     static LPSOCKET pSocket; 
     NAME_CACHE_NODE *pNameCache;

     HRESULT NameQueryHelper(LPPROPERTYBAG2 pPropBag, 
     						 VARIANT *pNameVar, 
     						 BT_ADDR ba, 
     						 UINT *uiUpdateStatus);

     HRESULT ChannelQueryHelper(LPPROPERTYBAG2 pPropBag, 
     							VARIANT *pNameVar, 
     							VARIANT *pNameCompletedVar, 
     							VARIANT *pAddressVar,
     							BT_ADDR ba, 
     							IPropertyBagEnum **_ppNewBagEnum, 
     							UINT *uiUpdateStatus,
     							BOOL fGetJustEnoughToConnect);


};





#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -