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 の前に強制的に配置します。
必要条件
属性コンテキスト
対象 |
任意 |
複数回の適用 |
不可 |
必要な属性 |
なし |
無効な属性 |
なし |
詳細については、「属性コンテキスト」を参照してください。