Cargar datos de caracteres y animaciones
[Microsoft Agent está en desuso a partir de Windows 7 y puede no estar disponible en versiones posteriores de Windows.
Después de tener un puntero a la interfaz IAgentEx , puede usar el método Load para cargar un carácter y recuperar su interfaz IAgentCharacterEx . Hay tres posibilidades diferentes para la ruta de acceso de carga de un carácter. La primera es compatible con Microsoft Agent 1.5, donde la ruta de acceso especificada es la ruta de acceso completa y el nombre de archivo de un archivo de caracteres. La segunda posibilidad es especificar solo el nombre de archivo, en cuyo caso, el Agente busca en su directorio Chars. La última posibilidad es proporcionar un parámetro Variant vacío que hace que se cargue el carácter predeterminado.
// Create a variant to store the filename of the character to load
const LPWSTR kpwszCharacter = L"merlin.acs";
VariantInit(&vPath);
vPath.vt = VT_BSTR;
vPath.bstrVal = SysAllocString(kpwszCharacter);
// Load the character
hRes = pAgentEx->Load(vPath, &lCharID, &lRequestID);
// Get its IAgentCharacterEx interface
hRes = pAgentEx->GetCharacterEx(lCharID, &pCharacterEx);
Puede usar esta interfaz para acceder a los métodos del carácter:
// Show the character. The first parameter tells Microsoft
// Agent to show the character by playing an animation.
hRes = pCharacterEx->Show(FALSE, &lRequestID);
// Make the character speak
bszSpeak = SysAllocString(L"Hello World!");
hRes = pCharacterEx->Speak(bszSpeak, NULL, &lRequestID);
SysFreeString(bszSpeak);
Cuando ya no necesite servicios de Microsoft Agent, como cuando se cierre la aplicación cliente, suelte sus interfaces. Tenga en cuenta que liberar la interfaz de caracteres no descarga el carácter. Llame al método Unload para hacerlo antes de liberar la interfaz IAgentEx :
// Clean up
if (pCharacterEx) {
// Release the character interface
pCharacterEx->Release();
// Unload the character. NOTE: releasing the character
// interface does NOT make the character go away. You must
// call Unload.
pAgentEx->Unload(lCharID);
}
// Release the Agent
pAgentEx->Release();
VariantClear(&vPath);
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de