Windows2003-3790/termsrv/newclient/rdpdr/vcint.h
2020-09-30 16:53:55 +02:00

95 lines
2.2 KiB
C++

/*++
Copyright (c) 1998 Microsoft Corporation
Module Name:
vcint.h
Abstract:
This module defines the virtual channel interface class.
Author:
Madan Appiah (madana) 17-Sep-1998
Revision History:
--*/
#ifndef __PORTMAP_H__
#define __PORTMAP_H__
//include externally exposed API
#include "drapi.h"
//definition of a channel init handle
//this is used only by internal plugins
#include "vchandle.h"
#define STATE_UNKNOWN 0xFF
#define PRDR_VC_CHANNEL_NAME DR_CHANNEL_NAME
class ProcObj;
class VCManager;
typedef struct _VC_TX_DATA
{
UINT32 uiLength;
UINT32 uiAvailLen;
BYTE *pbData;
} VC_TX_DATA, *PVC_TX_DATA;
class CClip;
class CRDPSound;
class VCManager : public IRDPDR_INTERFACE_OBJ {
public:
VCManager(CHANNEL_ENTRY_POINTS_EX*);
VOID ChannelWrite(LPVOID, UINT);
// This version returns a status for the write as:
// CHANNEL_RC_OK, CHANNEL_RC_NOT_INITIALIZED, CHANNEL_RC_NOT_CONNECTED,
// CHANNEL_RC_BAD_CHANNEL_HANDLE, CHANNEL_RC_NULL_DATA,
// CHANNEL_RC_ZERO_LENGTH
UINT ChannelWriteEx(LPVOID, UINT);
UINT ChannelClose();
VOID ChannelInitEvent(PVOID, UINT, PVOID, UINT);
VOID ChannelOpenEvent(ULONG, UINT, PVOID, UINT32, UINT32, UINT32);
VOID SetClip(CClip* pClip) {_pClip = pClip;}
CClip* GetClip() {return _pClip;}
VOID SetInitData(PRDPDR_DATA pInitData) {_pRdpDrInitSettings = pInitData;}
PRDPDR_DATA GetInitData() {return _pRdpDrInitSettings;}
VOID SetSound(CRDPSound *pSound) { _pSound = pSound; }
CRDPSound *GetSound() { return _pSound; }
virtual void OnDeviceChange(WPARAM wParam, LPARAM lParam);
protected:
PVOID _hVCHandle; // Virtual Channel Handle.
ULONG _hVCOpenHandle; // VC open handle for rdpdr channel.
VC_TX_DATA _Buffer; // Data for compiling data recieved by the channel
BYTE _bState; // State of the connection/system
ProcObj *_pProcObj; // Pointer to the processing unit
CHANNEL_ENTRY_POINTS_EX _ChannelEntries;
// Callback methods
PRDPDR_DATA _pRdpDrInitSettings;
CClip* _pClip;
CRDPSound *_pSound;
};
#endif // __PORTMAP_H__