[C#] Передайте буфер символов из .NET в COM и обновите его


Answers

Question

У меня есть следующий COM-метод, который pchText из C #, который возвращает строку в предоставленном буфере pchText (который необязательно заканчивается нулем) и количество символов, скопированных в pcch :

HRESULT Next([in, out] long* pcch, [out, size_is(*pcch)] OLECHAR* pchText);

Как определить подпись C # для взаимодействия?

До сих пор я пробовал:

void Next(ref int pcch,
    [MarshalAs(UnmanagedType.LPWStr, SizeParamIndex = 0)]
    System.Text.StringBuilder pchText);

Он работает, но я не уверен, SizeParamIndex ли SizeParamIndex на StringBuilder .