Pergunta

Eu estou tentando criar o IDL para a interface IConverterSession e estou confuso com a definição do método MIMETOMAPI . Ele especifica o parâmetro LPMESSAGE pmsg como [out] ainda os comentários afirmar a sua o ponteiro para a mensagem MAPI a ser carregado.

Não está claro para mim se as funções aloca o objeto de mensagem MAPI e define o ponteiro caso em que não deveria ser um ponteiro para um ponteiro de mensagem? OR é o código de chamada deverá ter instanciado o objeto de mensagem já nesse caso porque é marcado [out] e não [in]?

Utlitmately esta interface é para ser consumido a partir do código VB6 por isso terá que ser [em] ou [in, out] Mas eu preciso saber se no IDL eu usei: -

[in] IMessage pmsg* 

ou

[in, out] IMessage pmsg**
Foi útil?

Solução

Eu acho que, neste caso, a documentação é enganosa quando ele marca o parâmetro como [out]. Você tem que passar por um LPMESSAGE válida para o método, e é por isso que não é um ponteiro de casal. Então eu iria com [in] na sua definição IDL.

Outras dicas

Veja MAPIMime.h de fonte MFCMapi (http://mfcmapi.codeplex.com/) como uma fonte definitiva.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top