P/Invoke を使用して C# で WinAPI 関数 CalculatePopupWindowPosition を呼び出そうとしています。から
http://msdn.microsoft.com/en-us/library/windows/desktop/dd565861(v=vs.85).aspx
構文は次のとおりです。
BOOL WINAPI CalculatePopupWindowPosition(
_In_ const POINT *anchorPoint,
_In_ const SIZE *windowSize,
_In_ UINT flags,
_In_opt_ RECT *excludeRect,
_Out_ RECT *popupWindowPosition
);
次に、C#で次のコードを使用してインポートしようとしました
[DllImport("User32.dll", SetLastError = true, CallingConvention = CallingConvention.StdCall)]
public static extern bool CalculatePopupWindowPosition
(
[In] ref POINT anchorPoint,
[In] ref SIZE windowSize,
[In] ref UInt32 flags,
[In,Optional] ref RECT excludeRect,
[Out] out SIZE popupWindowPosition
);
RECT
、POINT
およびSIZE
構造体も実装し、それらを初期化しました。最後に、そのように関数を呼び出しました。
CalculatePopupWindowPosition(ref nIconPos, ref windowSize, ref flags, ref nIconRect, out windowSize);
これはうまくいかないようですが、 windowSize にはゼロしか含まれていません。ここで私が間違っていることはありますか?