1

Vista以降をサポートするアプリケーションのWindowsイベントログを作成しています。イベントごとにマニフェストを作成しましたが、出力タイプwin:Xmlで問題が発生します。以下は、イベントテンプレートのデータに指定するものです。

<data name="StackTrace" inType="win:UnicodeString" outType="win:Xml">
</data>

StackTraceをイベントログにXML形式で表示するように設定したいと思います。StackTraceは、整形式のXMLで入力する必要があります。ただし、イベントログビューアにstring(xs:string)として表示されたままです。

私が何を間違えたか知っていますか?どうすれば正しく作成できますか?

私のコードを更新する場合は以下のとおりです。

const int NUM_OF_DATADESC = 6;
EVENT_DATA_DESCRIPTOR eventDataDesc[NUM_OF_DATADESC];
evDesc.Level = uLevel;
evDesc.Channel = nChannel;
evDesc.Keyword |= uKeyword;
for (int i = 0; i < NUM_OF_DATADESC; i++)
{
if (strings[i] != NULL)
    EventDataDescCreate(&eventDataDesc[i], strings[i],    ((ULONG)wcslen(strings[i])+1)*sizeof(WCHAR));
else
    EventDataDescCreate(&eventDataDesc[i], L"", sizeof(WCHAR));
}
BOOL s = WriteEvent(evDesc,NUM_OF_DATADESC,&eventDataDesc[0]);


BOOL WriteEvent(EVENT_DESCRIPTOR eventID,DWORD userDataCount,PEVENT_DATA_DESCRIPTOR     userData)
{
REGHANDLE hPub = NULL;
ULONG res = EventRegister(&MYCOMPANE_MYAPP_MYCOMPONENT, NULL, NULL, &hPub);    
if (ERROR_SUCCESS != res){
    return FALSE;
}

res = EventWrite(hPub, &eventID, userDataCount, userData);
if (ERROR_SUCCESS != res){
 return FALSE;
}
EventUnregister(hPub);

return TRUE;
}

コードは正常に機能していますが、出力タイプ= win:Xmlでのみ問題が発生します。

4

0 に答える 0