このコードに出くわしましたが、[in] または [out] を見たことがありません。彼らは何ですか?
HRESULT QueryInterface([in] REFIID riid, [out] void **ppvObject) {
}
このコードに出くわしましたが、[in] または [out] を見たことがありません。彼らは何ですか?
HRESULT QueryInterface([in] REFIID riid, [out] void **ppvObject) {
}
これらは方向性を持つ IDL 属性です。データが渡される方向を示します。
あなたの質問で提供されているように、コードはおそらくコンパイルされません。そうは言っても、一般的ではありませんが、次のようなコードに遭遇する可能性があります。
HRESULT QueryInterface(IN REFIID riid, OUT void **ppvObject)
IN と OUT のどこかが #define されている (空になる) ため、これはコンパイルされます。これは、パラメーターが入力 (読み取り専用)、出力 (書き込み)、または両方のいずれであるかを示すポインターを使用して行われることがあります。この表示は、読者の利益のためのものです。
[in]
関数に送信されている値の表示です。または、値[out]
が変更されている場合は [出力] も同様です。