次の方法で共有


idl_quote

現在のバージョンの Visual C++ ではサポートされていない IDL コンストラクトを使用し、生成された .idl ファイルを使って渡すことができます。

[ idl_quote(
      text
) ]

パラメータ

  • text
    コンパイラ エラーを返さずに Visual C++ コンパイラから生成される .idl ファイルを使って渡される属性名。

解説

C++ 属性 idl_quote をスタンドアロン属性として使用する場合 (右角かっこの後にセミコロンを付けます)、text はマージされる .idl ファイルにそのまま配置されます。idl_quote をシンボルに対して使用した場合、text はそのシンボルの属性ブロック内に配置されます。

使用例

サポートされている in を使用してサポートされない属性を指定する方法、および未定義の .idl コンストラクトの定義方法と使用方法を示すコードは次のとおりです。

// cpp_attr_ref_idl_quote.cpp
// compile with: /LD
#include <unknwn.h>
[module(name="MyLibrary")];

[export]
struct MYFLOT {
   int i;
};

[export]
struct MYDUB {
   int i;
};

[idl_quote("typedef union _S1_TYPE switch (long l1) U1_TYPE { case 1024: \
struct MYFLOT f1; case 2048: struct MYDUB d2; } S1_TYPE;") ];

typedef struct _S1_TYPE { 
   long l1; 

union { 
   MYFLOT f1; MYDUB d2; } U1_TYPE; 
} S1_TYPE;

[uuid("2F5F63F1-16DA-11d2-9E7B-00C04FB926DA"), object]
__interface IStatic{
   HRESULT Func1([idl_quote("in")] int i);
   HRESULT func( S1_TYPE* myStruct );
};

上のコードでは、MYFLOT、MYDUB、および text エントリが生成される .idl ファイルに配置されます。name パラメータは、生成される .idl ファイルの name を参照する項目の直前に text を強制的に配置します。dependencies パラメータは、生成される .idl ファイルの依存リスト定義を text の前に強制的に配置します。

必要条件

属性コンテキスト

対象

任意

複数回の適用

不可

必要な属性

なし

無効な属性

なし

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

参照

概念

IDL 属性

スタンドアロン属性

ATL サンプル