相互運用性の警告

相互運用性の警告は、COM クライアントとの相互作用をサポートします。

このセクションの内容

規則

説明

CA1400: P/Invoke エントリ ポイントは存在しなければなりません

パブリック メソッドまたはプロテクト メソッドが System.Runtime.InteropServices.DllImportAttribute 属性を使用してマークされています。 アンマネージ ライブラリの位置を特定できないか、メソッドがライブラリ内の関数と一致しません。

CA1401: P/Invoke は参照可能になりません

パブリック型のパブリック メソッドまたはプロテクト メソッドに、System.Runtime.InteropServices.DllImportAttribute 属性があります (Visual Basic では Declare キーワードでも実装されます)。 このようなメソッドは公開しないでください。

CA1402: COM 参照可能インターフェイスでのオーバーロードを避けてください

オーバーロードされたメソッドが COM クライアントに公開されると、最初のメソッド オーバーロードだけが名前を保持します。 後続のオーバーロードは、名前にアンダースコア文字 (_) およびオーバーロードの宣言の順序に対応する整数が付加され、一意の名前に変更されます。

CA1403: Auto 配置の型を COM 参照可能にすることはできません

COM 参照可能な値型が、LayoutKind.Auto に設定された System.Runtime.InteropServices.StructLayoutAttribute 属性を使用してマークされています。 これらの型のレイアウトは .NET Framework のバージョンによって異なる場合があるため、特定のレイアウトを必要とする COM クライアントが動作しなくなる可能性があります。

CA1404: P/Invoke の直後に GetLastError を呼び出します

Marshal.GetLastWin32Error メソッドまたは同等の Win32 GetLastError 関数が呼び出されました。その直前に、プラットフォーム呼び出しメソッドが呼び出されていません。

CA1405: COM 参照可能な型の基本型は COM 参照可能でなければなりません

COM 参照可能な型が、COM 参照不可能な型から派生しています。

CA1406: Visual Basic 6 クライアントに対しては Int64 引数を使用しません

Visual Basic 6 COM クライアントでは、64 ビット整数にアクセスできません。

CA1407: Com 参照可能な型で静的メンバーを使用しません

COM では静的メソッドをサポートしていません。

CA1408: AutoDual ClassInterfaceType を使用しないでください

デュアル インターフェイスを使用する型を使用することで、クライアントを特定のインターフェイス レイアウトに対応付けることができます。 将来のバージョンで、この型またはその基本型のレイアウトに変更が加えられると、インターフェイスに対応付けられた COM クライアントが切り離されます。 既定では、ClassInterfaceAttribute 属性が指定されていない場合、ディスパッチのみのインターフェイスが使用されます。

CA1409: COM 参照可能な型は作成可能でなければなりません

COM から参照できると明確にマークされている参照型に、パブリックのパラメーター付きコンストラクターが含まれますが、パブリックの既定 (パラメーターなし) コンストラクターが含まれません。 パブリックの既定コンストラクターがない型は、COM クライアントで作成できません。

CA1410: COM 登録メソッドは一致しなければなりません

System.Runtime.InteropServices.ComRegisterFunctionAttribute 属性を使用してマークされたメソッドが型で宣言されているが、System.Runtime.InteropServices.ComUnregisterFunctionAttribute 属性を使用してマークされたメソッドが宣言されていません。または、その逆の状態になっています。

CA1411: COM 登録メソッドは参照可能であることはできません

System.Runtime.InteropServices.ComRegisterFunctionAttribute 属性または System.Runtime.InteropServices.ComUnregisterFunctionAttribute 属性を使用してマークされたメソッドが外部から参照できます。

CA1412: ComSource インターフェイスを IDispatch として設定します

型が System.Runtime.InteropServices.ComSourceInterfacesAttribute 属性によってマークされていますが、1 つ以上の指定されたインターフェイスが ComInterfaceType.InterfaceIsIDispatch に設定された System.Runtime.InteropServices.InterfaceTypeAttribute 属性によってマークされていません。

CA1413: Com 参照可能な値型ではパブリックでないフィールドを使用しません

COM から参照できる値型の非パブリック インスタンス フィールドは、COM クライアントで表示できます。 フィールドの内容を調べて、公開するべきではない情報や、設計またはセキュリティに意図しない影響を及ぼす情報が含まれていないかを確認してください。

CA1414: ブール型の P/Invoke 引数を MarshalAs に設定します

Boolean データ型は、アンマネージ コードの複数の表現を持っています。

CA1415: P/Invoke を正しく宣言します

この規則では、OVERLAPPED 構造体パラメーターへのポインターを持ち、対応するマネージ型パラメーターが System.Threading.NativeOverlapped 構造体へのポインターではない Win32 関数に対するプラットフォーム呼び出しメソッド宣言が対象になります。