oleautomation 특성
oleautomation 특성은 인터페이스가 Automation과 호환됨을 나타냅니다.
[
oleautomation,
uuid(string-uuid)
[ , interface-attribute-list]
]
interface interface-name : base-interface
{
...
}
매개 변수
-
string-uuid
-
Uuidgen 유틸리티에서 생성된 UUID 문자열을 지정합니다.
-
interface-attribute-list
-
인터페이스 전체에 적용되는 다른 특성을 지정합니다.
-
interface-name
-
인터페이스의 이름을 지정합니다.
-
base-interface
-
이 파생 인터페이스가 멤버 함수, 상태 코드 및 인터페이스 특성을 상속하는 Automation 인터페이스의 이름을 지정합니다. 모든 Automation 인터페이스는 IUnknown 또는 IDispatch에서 파생됩니다.
설명
다음 표에 나와 있는 것처럼 [oleautomation] 인터페이스의 멤버에 대해 지정된 매개 변수 및 반환 형식은 Automation과 호환되어야 합니다.
형식 | Description |
---|---|
boolean | 값이 VARIANT_TRUE 또는 VARIANT_FALSE 수 있는 데이터 항목입니다. 크기는 VARIANT_BOOL 해당합니다. |
unsigned char | 8비트 부호 없는 데이터 항목입니다. |
double | 64비트 IEEE 부동 소수점 숫자입니다. |
float | 32비트 IEEE 부동 소수점 숫자입니다. |
int | 크기가 시스템에 종속된 부속 정수입니다. 32비트 플랫폼에서 MIDL은 int 를 32비트 부가 정수로 처리합니다. |
long | 부호 있는 32비트 정수. |
short | 16비트 부가 정수입니다. |
BSTR | Automation 항목 BSTR에 설명된 대로 길이 접두사 문자열입니다. |
CURRENCY | 8비트 고정 부동 소수점 숫자입니다. |
DATE | 1899년 12월 30일 이후의 64비트 부동 소수점 소수 자릿수입니다. |
Scode | 16비트 시스템의 경우 VT_ERROR 해당하는 기본 제공 오류 유형입니다. |
Typedef 열거형 Â myenum | 크기가 시스템에 종속된 부속 정수입니다. |
인터페이스 IDispatch * | IDispatch 인터페이스(VT_DISPATCH)에 대한 포인터입니다. |
인터페이스 IUnknown * | IDispatch(VT_UNKNOWN)에서 파생되지 않는 인터페이스에 대한 포인터입니다. (모든 OLE 인터페이스는 IUnknown 인터페이스로 나타낼 수 있습니다.) |
Dispinterface  Typename * | IDispatch(VT_DISPATCH)에서 파생된 인터페이스에 대한 포인터입니다. |
Coclass  Typename * | coclass 이름(VT_UNKNOWN)에 대한 포인터입니다. |
[oleautomation] 인터페이스 Â Typename * | IUnknown에서 파생되는 인터페이스에 대한 포인터입니다. |
SAFEARRAY(TypeName) | TypeName 은 위의 형식 중 한 가지입니다. 이러한 형식의 배열입니다. |
Typename* | TypeName 은 위의 형식 중 한 가지입니다. 형식에 대한 포인터입니다. |
10진수 | 96비트 부호 없는 이진 정수는 10의 가변 전력으로 확장됩니다. 좌표와 같이 숫자에 대한 크기 및 배율을 제공하는 10진수 데이터 형식입니다. |
해당 형식이 Automation 호환 형식, Automation 호환 형식에 대한 포인터 또는 Automation 호환 형식의 SAFEARRAY인 경우 매개 변수는 Automation과 호환됩니다.
반환 형식은 HRESULT, SCODE 또는 void인 경우 Automation과 호환됩니다. 그러나 MIDL을 사용하려면 인터페이스 메서드가 HRESULT 또는 SCODE를 반환해야 합니다. void를 반환하면 컴파일러 오류가 발생합니다.
반환 형식과 모든 매개 변수가 Automation과 호환되는 경우 멤버는 Automation과 호환됩니다.
인터페이스는 IDispatch 또는 IUnknown에서 파생되고 [oleautomation] 특성이 있으며 모든 VTBL 항목이 Automation과 호환되는 경우 Automation과 호환됩니다. 32비트 플랫폼의 경우 인터페이스의 모든 메서드에 대한 호출 규칙은 STDCALL이어야 합니다. 16비트 시스템의 경우 모든 메서드에는 CDECL 호출 규칙이 있어야 합니다.
모든 dispinterface 는 암시적으로 Automation과 호환됩니다. 따라서 dispinterface에서 [oleautomation] 특성을 사용하면 안 됩니다.
MIDL 컴파일러 /osf 스위치를 사용하여 컴파일할 때는 [oleautomation] 특성을 사용할 수 없습니다.
플래그
TYPEFLAG_FOLEAUTOMATION
예
library Hello
{
importlib("stdole32.tlb");
[
uuid(12345678-1234-1234-1234-123456789ABC),
helpstring("Application object for the Hello application."),
oleautomation,
dual
]
interface IHello : IDispatch
{
// Interface definition statements.
}
// Other library definition statements.
}
참고 항목