0

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
);

RECTPOINTおよびSIZE構造体も実装し、それらを初期化しました。最後に、そのように関数を呼び出しました。

CalculatePopupWindowPosition(ref nIconPos, ref windowSize, ref flags, ref nIconRect, out windowSize);

これはうまくいかないようですが、 windowSize にはゼロしか含まれていません。ここで私が間違っていることはありますか?

4

1 に答える 1