Files
Sun1602/Client/GameClient/Interface/uiWebDialogMan/uiWebDialogMan_main.cpp
T
2022-10-26 12:25:11 +08:00

263 lines
6.5 KiB
C++

#include "SunClientPrecompiledHeader.h"
#include "uiWebDialogMan.h"
#include "uiWebDialog/uiWebDialog.h"
#include "globalfunc.h"
#include "interfacemanager.h"
#ifdef _KIKI_UI_WEB_DIALOG
//------------------------------------------------------------------------------
/**
*/
uiWebDialogMan::uiWebDialogMan(InterfaceManager *pUIMan) :
uiBaseMan(pUIMan)
{
m_pUIWebDialog = NULL;
ZeroMemory(m_pURL, sizeof(m_pURL));
ZeroMemory(m_pLoginURL, sizeof(m_pLoginURL));
ZeroMemory(m_pAuthURL, sizeof(m_pAuthURL));
ZeroMemory(m_pGLOGURL, sizeof(m_pGLOGURL));
ZeroMemory(m_pUserURL, sizeof(m_pUserURL));
ZeroMemory(m_szAuthURL, sizeof(m_szAuthURL));
ZeroMemory(m_szUserURL, sizeof(m_szUserURL));
_loadURL();
}
//------------------------------------------------------------------------------
/**
*/
void uiWebDialogMan::_loadURL()
{
ZeroMemory(m_szAuthURL, sizeof(m_szAuthURL));
ZeroMemory(m_szUserURL, sizeof(m_szUserURL));
TCHAR szGlogURL[MAX_PATH] ={0,};
// 996 http://betaglog.sunonline.co.kr/Game/checkLogin.asp?sID=
g_InterfaceManager.GetInterfaceString(996, m_szAuthURL, MAX_PATH);
// 995 http://betaglog.sunonline.co.kr/Game/goGlog.asp?bTP=1
g_InterfaceManager.GetInterfaceString(995, szGlogURL, MAX_PATH);
MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, szGlogURL, _tcslen(szGlogURL), m_pGLOGURL, MAX_PATH );
// 994 http://betaglog.sunonline.co.kr/Game/goGlog.asp?bTP=2&sID=
g_InterfaceManager.GetInterfaceString(994, m_szUserURL, MAX_PATH);
}
void uiWebDialogMan::OnInitialize()
{
_LoadUI();
}
//------------------------------------------------------------------------------
/**
*/
void uiWebDialogMan::OnRelease()
{
/* for (int i=UID_BEGIN; i<UID_END; ++i)
{
this->UnloadUI(i);
}*/
}
//------------------------------------------------------------------------------
/**
*/
void uiWebDialogMan::ToggleWebDialog( void )
{
if( m_pUIWebDialog )
{
if(m_pUIWebDialog->IsVisibleWindow())
{
m_pUIWebDialog->ShowInterface( FALSE );
}
else
{
m_pUIWebDialog->ShowInterface( TRUE );
RequestGLOG();
}
}
}
//------------------------------------------------------------------------------
/**
*/
void uiWebDialogMan::SetURL( WCHAR * pURL )
{
if( pURL )
{
wcscpy( m_pURL, pURL );
}
}
//------------------------------------------------------------------------------
/**
*/
void uiWebDialogMan::SetURL( char * pURL )
{
if( pURL )
{
ConvertToUNICODE( pURL , m_pURL);
}
}
#ifdef _KIKI_WEB_AUTH
//------------------------------------------------------------------------------
/**
*/
void uiWebDialogMan::RequestLogin(TCHAR* pID, char* pszGLogKey)
{
// 웹 인증을 요청한다
ZeroMemory(m_pAuthURL, sizeof(m_pAuthURL));
// 웹인증 URL 구성
TCHAR szURL[MAX_PATH] = {0,};
Snprintf(szURL, MAX_PATH-1, _T("%s%s&sAK=%s"), m_szAuthURL, pID, pszGLogKey);
MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, szURL, _tcslen(szURL), m_pAuthURL, MAX_PATH );
m_pUIWebDialog->Navigate( m_pAuthURL, FALSE ); // 윈도우는 띄우지 말고, 페이지 오픈만 한다.
}
#endif
//------------------------------------------------------------------------------
/**
*/
void uiWebDialogMan::RequestGLOG()
{
m_pUIWebDialog->Navigate( L"https://www.baidu.com", TRUE );
}
//------------------------------------------------------------------------------
/**
*/
void uiWebDialogMan::RequestBLOG(TCHAR* pCharID)
{
// 유저 블로그 URL 구성
TCHAR szURL[MAX_PATH] = {0,};
Snprintf(szURL, MAX_PATH-1, _T("%s%s"), m_szUserURL, pCharID);
MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, szURL, _tcslen(szURL), m_pUserURL, MAX_PATH );
m_pUIWebDialog->Navigate( m_pUserURL, TRUE );
}
//------------------------------------------------------------------------------
/**
*/
void uiWebDialogMan::RequestUserID(TCHAR* pCharName)
{
BOOL bRet = FALSE;
MSG_CW_COMM_USERID_REQ sync;
StrnCopy( sync.m_ptszCharName, pCharName, MAX_CHARNAME_LENGTH );
bRet = GlobalFunc::SendPacket(CI_CHATSERVERIDX, &sync, sizeof(sync));
if(!bRet)
{
TCHAR szMessage[INTERFACE_STRING_LENGTH] = {0,};
#ifdef _DEBUG
GlobalFunc::OutputMsg_Error(eOUTPUT_MSG_CHAT, _T("ERR SendPacket: MSG_CW_COMM_USERID_REQ"));
#endif
}
}
//------------------------------------------------------------------------------
/**
*/
void uiWebDialogMan::NetworkProcWorld( MSG_BASE * pMsg )
{
TCHAR szURL[INTERFACE_STRING_LENGTH] = {0,};
TCHAR szMessage[INTERFACE_STRING_LENGTH] = {0,};
TCHAR szWideString[20] = {0,};
TCHAR szWideStringID[ID_MAX_LEN+1] = {0,};
switch (pMsg->m_byCategory)
{
case CW_COMMUNITY:
{
switch (pMsg->m_byProtocol)
{
case CW_COMM_USERID_ACK:
{
MSG_CW_COMM_USERID_ACK *pRecvPacket = (MSG_CW_COMM_USERID_ACK *)pMsg;
StrnCopy( szWideString, pRecvPacket->m_ptszCharName, sizeof(pRecvPacket->m_ptszCharName));
StrnCopy( szWideStringID, pRecvPacket->m_ptszAccountID, sizeof(pRecvPacket->m_ptszAccountID));
szWideString[MAX_CHARNAME_LENGTH] = NULL;
szWideStringID[ID_MAX_LEN] = NULL;
if(_tcslen(szWideStringID))
{
RequestBLOG(szWideStringID);
}
else
{
// 해당 유저의 정보를 가져올 수 없습니다. 5214
const int c_iSvrErr = 5214;
GetUIMan()->GetInterfaceString( c_iSvrErr, szMessage, INTERFACE_STRING_LENGTH);
GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage);
}
#ifdef _DEBUG
Snprintf(szMessage, INTERFACE_STRING_LENGTH-1, _T("CW_COMM_USERID_ACK [%s][%s]"), szWideString, szWideStringID);
GlobalFunc::OutputMsg_Error(eOUTPUT_MSG_CHAT, szMessage);
#endif
}
break;
case CW_COMM_USERID_NAK:
{
MSG_CW_COMM_USERID_NAK *pRecvPacket = (MSG_CW_COMM_USERID_NAK*)pMsg;
if(pRecvPacket->m_wErrorCode == MSG_CW_COMM_USERID_NAK::_ERR_NOTCONNUSER)
{
// 접속 중이 아닌 사용자 정보 요청
const int c_iNotFoundUser = 70262;
GetUIMan()->GetInterfaceString( c_iNotFoundUser, szMessage, INTERFACE_STRING_LENGTH);
GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage);
}
else
{
// 알수없는 이유
// 해당 유저의 정보를 가져올 수 없습니다.
const int c_iSvrErr = 5214;
GetUIMan()->GetInterfaceString( c_iSvrErr, szMessage, INTERFACE_STRING_LENGTH);
GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage);
}
#ifdef _DEBUG
Snprintf(szMessage, INTERFACE_STRING_LENGTH-1,_T("CW_COMM_USERID_NAK [%d]"), pRecvPacket->m_wErrorCode);
GlobalFunc::OutputMsg_Error(eOUTPUT_MSG_CHAT, szMessage);
#endif
}
break;
}
}
break;
}
}
//------------------------------------------------------------------------------
/**
*/
void uiWebDialogMan::NetworkProc( MSG_BASE * pMsg )
{
}
#endif