IDebugProgramNode2::GetHostName
프로그램을 호스트하는 프로세스의 이름을 가져옵니다.
구문
매개 변수
dwHostNameType
[in] 반환할 이름의 형식을 지정하는 GETHOSTNAME_TYPE 열거형의 값입니다.
pbstrHostName
[out] 호스팅 프로세스의 이름을 반환합니다.
Return Value
성공하면 S_OK
를 반환하고, 실패하면 오류 코드를 반환합니다.
예시
다음 예제에서는 CProgram
IDebugProgramNode2 인터페이스를 노출하는 간단한 개체에 대해 이 메서드를 구현하는 방법을 보여 줍니다. 이 예제에서는 dwHostNameType
매개 변수를 무시하고 모듈 파일 경로의 기본 이름에서 가져온 프로그램 이름만 반환합니다.
HRESULT CProgram::GetHostName(DWORD dwHostNameType, BSTR* pbstrHostName) {
// Check for valid argument.
if (pbstrHostName)
{
char szModule[_MAX_PATH];
// Attempt to assign to szModule the path for the file used
// to create the calling process.
if (GetModuleFileName(NULL, szModule, sizeof (szModule)))
{
// If successful then declare several char arrays
char szDrive[_MAX_DRIVE];
char szDir[_MAX_DIR];
char szName[_MAX_FNAME];
char szExt[_MAX_EXT];
char szFilename[_MAX_FNAME + _MAX_EXT];
WCHAR wszFilename[_MAX_FNAME + _MAX_EXT];
// Break the szModule path name into components.
_splitpath(szModule, szDrive, szDir, szName, szExt);
// Copy the base file name szName into szFilename.
lstrcpy(szFilename, szName);
// Append the field extension szExt into szFilename.
lstrcat(szFilename, szExt);
// Convert the szFilename sequence of multibyte characters
// to the wszFilename sequence of wide characters.
mbstowcs(wszFilename, szFilename, sizeof (wszFilename) / 2);
// Assign the wszFilename to the value at *pbstrHostName.
*pbstrHostName = SysAllocString(wszFilename);
return S_OK;
}
}
return E_INVALIDARG;
}