터프가 ...
나는 .NET 메소드로 사용자 필드를 채울 방법을 찾았습니다. 불행하게도 아무도 없다, 당신은 Platform Invoke Data Types이
그래서
BOOL ReportEvent(
__in HANDLE hEventLog,
__in WORD wType,
__in WORD wCategory,
__in DWORD dwEventID,
__in PSID lpUserSid,
__in WORD wNumStrings,
__in DWORD dwDataSize,
__in LPCTSTR *lpStrings,
__in LPVOID lpRawData
);
를 말하는 것처럼 당신은 또한 오른쪽 종류와 기능을 재 선언해야
DLLImportAttribute
로 (http://msdn.microsoft.com/en-us/library/aa363679(VS.85).aspx)를 일반 기존의 Win32 API [ReportEvent 기능]을 가져와야합니다
는
[DllImport("Advapi32.dll", EntryPoint="ReportEventW", SetLastError=true,
CharSet=CharSet.Unicode)]
bool WriteEvent(
IntPtr hEventLog, //Where to find it ?
ushort wType,
ushort wCategory,
ulong dwEventID,
IntPtr lpUserSid, // We'll leave this struct alone, so just feed it a pointer
ushort wNumStrings,
ushort dwDataSize,
string[] lpStrings,
IntPtr lpRawData
);
은 01,235,183,713 (또한 [하는 OpenEventLog]보고 싶을된다및 [ConvertStringSidToSid] (http://msdn.microsoft.com/en-us/library/aa376402(VS.85).aspx)
아, 그리고 당신이 지금 관리되지 않는 코드를 작성하는 ... 메모리 leaks.Good 행운을 조심 : P