Files
2026-06-01 12:46:52 +02:00

82 lines
1.6 KiB
C++

#include "stdafx.h"
#include "SplashLoading.h"
#include "Resource.h"
#include <stdio.h>
// 2010.08.09 - prodongi
cSplashLoading::cSplashLoading(bool apply) : m_apply(apply)
{
ZeroMemory( &m_si, sizeof(m_si) );
m_si.cb = sizeof(m_si);
ZeroMemory( &m_pi, sizeof(m_pi) );
}
void cSplashLoading::begin(HINSTANCE hInstance)
{
if (!m_apply) return ;
/*
// 2010.08.09 - prodongi
BOOL ret = CreateProcess( NULL, "SplashLoading.exe Potato.NF.Rappelz SFrame.exe",
NULL,
NULL,
FALSE,
0,
NULL,
NULL,
&m_si,
&m_pi);
*/
/// 2010.10.26 process id 보내는 걸로 테스트
DWORD id = GetCurrentProcessId();
char str[MAX_PATH];
sprintf(str, "%s %s %d", "SplashLoading.exe", "Potato.NF.Rappelz", id);
BOOL ret = CreateProcess( NULL, str,
NULL,
NULL,
FALSE,
0,
NULL,
NULL,
&m_si,
&m_pi);
#ifdef _DEV
if (0 == ret)
{
char str[1024];
DWORD ret = FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS ,
NULL, GetLastError(), 0, str, _countof(str), NULL );
if(ret > 0)
{
MessageBox(HWND_DESKTOP, str, "SplashLoading Error", MB_OK);
}
}
#endif
}
void cSplashLoading::end(HWND hWnd)
{
if (!m_apply) return ;
clear();
if (hWnd) ShowWindow(hWnd, SW_SHOW);
}
void cSplashLoading::clear()
{
// 2010.08.09 - prodongi
if (m_pi.hProcess)
{
DWORD exitCode;
GetExitCodeProcess(m_pi.hProcess, &exitCode);
TerminateProcess(m_pi.hProcess, exitCode);
CloseHandle( m_pi.hProcess );
m_pi.hProcess = NULL;
}
if (m_pi.hThread)
{
CloseHandle( m_pi.hThread );
m_pi.hThread = NULL;
}
}