2009-11-25 46 views
0

我想從c#中調用SndGetSoundFileList,但由於指針參數的原因,我不知道該函數的p/invoke是如何得到的。c#pinvoke SndGetSoundFileList?

HRESULT SndGetSoundFileList (
    SND_EVENT seSoundEvent, 
    DWORD grfLocations, 
    SNDFILEINFO** ppSoundFiles, 
    int* pcSoundFiles 
); 

我想列表作爲一個字符串數組,當然。

任何人都可以幫助我嗎?

謝謝!

回答

2

對於數組參數,請使用out IntPtr作爲參數類型。然後使用Marshal.PtrToStructure檢索結構,並在完成後調用LocalFree釋放內存。

+0

使用了IntPtr的很容易,但我不能讓Marshal.PtrToStructure到ppSoundFiles轉換爲結構的數組。那裏有竅門嗎? – Sam 2009-11-26 14:19:20

+0

你必須手動封送它。 – ctacke 2009-11-26 15:53:31