IDebugProgramNode2:: GetHostName
Ottiene il nome dell'hosting del programma.
HRESULT GetHostName (
GETHOSTNAME_TYPE dwHostNameType,
BSTR* pbstrHostName
);
int GetHostName (
enum_GETHOSTNAME_TYPE dwHostNameType,
out string pbstrHostName
);
Parametri
dwHostNameType
[in] Un valore GETHOSTNAME_TYPE dell'enumerazione che specifica il tipo di nome per restituire.pbstrHostName
[out] Restituisce il nome del processo di hosting.
Valore restituito
Se l'operazione riesce, restituisce S_OK; in caso contrario, restituisce un codice di errore.
Esempio
Nell'esempio seguente viene illustrato come implementare questo metodo per un oggetto semplice di CProgram che espone IDebugProgramNode2 l'interfaccia. In questo esempio viene ignorato il parametro di dwHostNameType e restituisce solo il nome del programma come richiesto dal nome di base del percorso del file di modulo.
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;
}