안녕하십니까.
IDispatch를 상속한 인터페이스를 가지는 COM Object를 만들때,
Type Library에서 해당 인터페이스를 선택하고 Flags 탭을 보면 Oleautomation
체크 박스가 있습니다.
그런데 이것을 체크를 하나 안하나 생성되는 코드는 동일합니다.
다만 Type Library Import 유닛에서 해당 인터페이스 정의 위에 나오는
주석 부분에서 Flags: 부분이 달라질 뿐입니다.
Oleautomation을 선택하면 => (4352) OleAutomation Dispatchable,
Oleautomation을 선택하지 않으면 => (4096) Dispatchable로 나오는 것 뿐입니다.
IDL상에도 [oleautomation]이 추가되느냐 아니냐하는 변화가 있고요.
그런데 이게 어떤 차이가 있는 것입니까? 곰곰 생각해 봤지만 전 차이를 모르겠습니다.
어차피 Oleautomation을 선택하지 않더라도 marshalling은 OLE Library에서
하게 될 것이고, 인자의 타입도 VariantArray 호환 타입으로 제한되는 것도 똑같지
않습니까? 도대체 어떤 차이가 있는 걸까요?
아시는 분은 한 말씀 조언을 남겨 주시면 대단히 감사하겠습니다.
건강하세요.