52 lines
1.2 KiB
C++
52 lines
1.2 KiB
C++
// Inproc.h
|
|
|
|
#pragma once
|
|
|
|
#include "NCDefs.h"
|
|
#include "Transport.h"
|
|
|
|
class CInprocClient : public CTransport, public IPostBuffer
|
|
{
|
|
public:
|
|
CInprocClient();
|
|
|
|
virtual ~CInprocClient();
|
|
|
|
// Overrideables
|
|
virtual IsReady();
|
|
virtual BOOL SendData(LPBYTE pBuffer, DWORD dwSize);
|
|
virtual void Deinit();
|
|
virtual BOOL InitCallback();
|
|
virtual void SendMsgReply(NC_SRVMSG_REPLY *pReply);
|
|
|
|
// Init function.
|
|
virtual BOOL Init(LPCWSTR szBasePipeName, LPCWSTR szBaseProviderName);
|
|
|
|
BOOL SignalProviderDisabled();
|
|
|
|
// IPostBuffer
|
|
virtual ULONG AddRef();
|
|
virtual ULONG Release();
|
|
virtual HRESULT PostBuffer(LPBYTE pData, DWORD dwSize);
|
|
|
|
protected:
|
|
HANDLE // Objects visible to P2 client but created by the server.
|
|
m_heventProviderReady,
|
|
// Other handles used for implementation
|
|
m_hthreadReady,
|
|
m_heventDone;
|
|
|
|
IPostBuffer *m_pSrvBuffer;
|
|
|
|
WCHAR m_szPipeName[MAX_PATH];
|
|
BOOL m_bDone;
|
|
HINSTANCE m_hProv;
|
|
|
|
void DeinitBuffer();
|
|
BOOL GetBuffer();
|
|
|
|
BOOL StartReadyThreadProc();
|
|
static DWORD WINAPI ProviderReadyThreadProc(CInprocClient *pThis);
|
|
};
|
|
|