次の方法で共有


emitidl

後続のすべての IDL 属性を処理し、生成された .idl ファイルに配置するかどうかを指定します。

構文

[ emitidl(state, defaultimports=boolean) ];

パラメーター

状態
truefalseforcedrestrictedpush、または pop のいずれかの値。

  • true の場合、ソース コード ファイルで検出された IDL カテゴリ属性がすべて、生成された .idl ファイルに配置されます。 これは、emitidl の既定の設定です。

  • false の場合、ソース コード ファイルで検出された IDL カテゴリ属性はいずれも、生成された .idl ファイルに配置されません。

  • restricted の場合、module 属性のないファイルに IDL 属性を配置できます。 コンパイラは .idl ファイルを生成しません。

  • forced の場合、後続の restricted 属性をオーバーライドします。これにより、ファイルに IDL 属性がある場合は、ファイルに module 属性が必要になります。

  • push は、現在の emitidl 設定を内部の emitidl スタックに保存できるようにし、pop は、内部の emitidl スタックの最上部にある任意の値に emitidl を設定できるようにします。

defaultimports=ブール値 (省略可能)

  • ブール値true の場合、docobj.idl が生成された .idl ファイルにインポートされます。 また、ソース コードに #include する .h ファイルと同じ名前の .idl ファイルが .h ファイルと同じディレクトリに見つかった場合、生成された .idl ファイルに、その .idl ファイルのインポート ステートメントが含められます。

  • ブール値false の場合、docobj.idl が生成された .idl ファイルにインポートされません。 import を使用して .idl ファイルを明示的にインポートする必要があります。

解説

ソース コード ファイルに emitidl C++ 属性が検出されると、生成された .idl ファイルに IDL カテゴリ属性が配置されます。 emitidl 属性がない場合は、ソース コード ファイル内の IDL 属性が生成された .idl ファイルに出力されます。

ソース コード ファイルに複数の emitidl 属性が含まれている可能性があります。 ファイルに [emitidl(false)]; が検出され、後続の [emitidl(true)]; がない場合、属性が処理されて生成された .idl ファイルに含められることはありません。

コンパイラが新しいファイルを検出するたびに、emitidl は暗黙的に true に設定されます。

必要条件

属性コンテキスト Value
適用対象 Anywhere
反復可能 いいえ
必要な属性 なし
無効な属性 なし

詳細については、「 属性コンテキスト」を参照してください。

関連項目

コンパイラ属性
スタンドアロン属性