Files
2022-10-26 12:25:11 +08:00

102 lines
3.1 KiB
C++

#pragma once
#ifdef _APPLY_JAPAN_GAMECHU_CHANNELING
#include <string>
#include <map>
#include <list>
#include "GDefine.h"
using namespace std;
class GACTMgr;
class GACTFactory;
class IACT;
class GWICWrapper
{
public:
GWICWrapper();
~GWICWrapper(void);
private:
void Clear();
void ClearRCBF();
private:
typedef std::map<string, HANDLE> TRCBF;
typedef TRCBF::iterator TRCBF_POS;
public:
BOOL Initialize(); //
BOOL TransferMyHWND(); // Transfer My HWND to WIC Windows In GameChuLauncher.exe
BOOL IsInitialize() { return m_bInitialized; }
LRESULT OnCopyData( WPARAM wParam, LPARAM lParam ); // WM_COPYDATA's Message Handler.
void CheckCBEvent();
public:
BOOL InvokeChargeCash(); // Request Charge Cash
BOOL InvokeCash(); // Request Cash's Value
BOOL InvokeBuyItem( const string& sValue ); // Request Buy Item
BOOL InvokeGift( const string& sValue ); // Request Give Item to Other.
BOOL InvokeClan( const string& sValue ); // Request Join/Leave/Force Leave/
BOOL InvokeSendMsg( const string& sValue ); // Request Others Type' Msg
public:
BOOL Invoke( const string& sID, const string& sCBID, const string& sValue );
LRESULT SendMsg( IACT* pACT );
LRESULT SendMsg( const string& sID, HWND hWnd );
private:
BOOL CheckFunction( const string& sID ); // Check Whether or not Kernel Object Exists.
BOOL IsProcessing(); // Check Whether or not Processing.
HWND FindWIC(); // Find WIC Windows's HWND In GameChuLaunche.exe
public:
HANDLE CreateCBEvent( const string& sCBID ); // Create CallBack's Event
void DestroyCBEvent( const string& sCBID ); // Destory CallBack's Event
private:
string FindRegisteredCBID( HANDLE hCBEvent ); // Find and Return CBID
HANDLE FindRegisteredCBEvent( const string& sCBID ); // Find and Return CBID
HANDLE RegisterCBEvent( const string& sCBID, HANDLE hEvent ); // Register Kernel Object.
BOOL UnRegisterCBEvent( const string& sCBD ); // UnRegister Kernel Object.
void TerminateInvoke(HANDLE hEvent); // Terminate Invoke.
public:
HWND GetHWIC(); // Return WIC Windows's HWND
HWND GetHGame(); // Return WIC Windows's HWND
void SetHGame(HWND hGame); // Set Game Windows' HWND
private:
HWND m_hWIC; // In GameChuLaunche.exe
HWND m_hGame; // GameClient's HWND.
std::map<string, HANDLE> m_mapRegisteredCBEvent; // CallBack's ID and HANDLE.
GACTMgr* m_pACTMgr;
GACTFactory* m_pACTFactory;
BOOL m_bInitialized;
};
#endif //_APPLY_JAPAN_GAMECHU_CHANNELING