本文整理汇总了C++中SharedMemory::GetRespEvent方法的典型用法代码示例。如果您正苦于以下问题:C++ SharedMemory::GetRespEvent方法的具体用法?C++ SharedMemory::GetRespEvent怎么用?C++ SharedMemory::GetRespEvent使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SharedMemory
的用法示例。
在下文中一共展示了SharedMemory::GetRespEvent方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ConsoleException
void ConsoleHandler::StartShellProcessAsAdministrator
(
const wstring& strSyncName,
const wstring& strShell,
const wstring& strInitialDir,
const wstring& strInitialCmd
)
{
SharedMemory<DWORD> pid;
pid.Open(strSyncName, syncObjBoth);
UserCredentials userCredentials;
PROCESS_INFORMATION pi = {0, 0, 0, 0};
CreateShellProcess(
strShell,
strInitialDir,
userCredentials,
strInitialCmd,
L"",
pi
);
*pid.Get() = pi.dwProcessId;
::SetEvent(pid.GetReqEvent());
// wait for shared objects creation
if (::WaitForSingleObject(pid.GetRespEvent(), 10000) == WAIT_TIMEOUT)
throw ConsoleException(boost::str(boost::wformat(Helpers::LoadString(IDS_ERR_DLL_INJECTION_FAILED)) % L"timeout"));
// inject our hook DLL into console process
if (!InjectHookDLL(pi))
throw ConsoleException(boost::str(boost::wformat(Helpers::LoadString(IDS_ERR_DLL_INJECTION_FAILED)) % L"?"));
// resume the console process
::ResumeThread(pi.hThread);
::CloseHandle(pi.hThread);
}