다음을 통해 공유


ICreateTypeInfo::AddFuncDesc 메서드(oaidl.h)

형식 설명에 함수 설명을 추가합니다.

구문

HRESULT AddFuncDesc(
  [in] UINT     index,
  [in] FUNCDESC *pFuncDesc
);

매개 변수

[in] index

형식 정보의 새 FUNCDESC 인덱스입니다.

[in] pFuncDesc

함수를 설명하는 FUNCDESC 구조체입니다. FUNCDESC의 bstrIDLInfo 필드는 null이어야 합니다.

반환 값

이 메서드는 이러한 값 중 하나를 반환할 수 있습니다.

반환 코드 설명
S_ok
성공.
E_INVALIDARG
하나 이상의 인수가 잘못되었습니다.
E_OUTOFMEMORY
메모리가 부족하여 작업을 완료할 수 없습니다.
E_ACCESSDENIED
대상에 쓸 수 없습니다.
STG_E_INSUFFICIENTMEMORY
메모리가 부족하여 작업을 완료할 수 없습니다.
TYPE_E_WRONGTYPEKIND
형식이 일치하지 않습니다.

설명

인덱스는 형식 정보 내의 함수 순서를 지정합니다. 첫 번째 함수의 인덱스는 0입니다. 형식 정보의 함수 수보다 작은 인덱스를 지정하면 오류가 반환됩니다. 이 함수를 호출해도 FUNCDESC 구조체의 소유권은 ICreateTypeInfo에 전달되지 않습니다. 따라서 호출자는 여전히 FUNCDESC 구조체의 할당을 해제해야 합니다.

TYPEKIND가 TKIND_MODULE 또는 oVft가 -1 또는 0인 경우 FUNCDESC의 전달된 VTBL(가상 함수 테이블) 필드(oVft)는 무시됩니다. 이 특성은 ICreateTypeInfo::LayOut 이 호출되면 설정됩니다. oVft 값은 TYPEKIND가 TKIND_DISPATCH 이중 인터페이스이거나 TYPEKIND가 TKIND_INTERFACE 경우에 사용됩니다. oVft를 사용하는 경우 컴퓨터에서 sizeof(VOID *)의 배수여야 합니다. 그렇지 않으면 함수가 실패하고 E_INVALIDARG HRESULT로 반환됩니다.

AddFuncDesc 함수는 TYPEKIND = TKIND_DISPATCH 또는 TKIND_INTERFACE 클래스에 대해 각 FUNCDESC 내에서 전달된 멤버 식별자(memid) 필드를 사용합니다. 멤버 ID가 MEMBERID_NIL 설정된 경우 AddFuncDesc 는 함수에 멤버 ID를 할당합니다. 그렇지 않으면 각 FUNCDESC 내의 멤버 ID 필드가 무시됩니다.

FUNCDESC 구조의 모든 HREFTYPE 필드는 AddFuncDesc가 호출되는 동일한 ITypeInfo instance 의해 생성되어야 합니다.

동일한 속성에 대한 get 및 put 접근자 함수에는 DISPID(동일한 디스패치 식별자)가 있어야 합니다.

요구 사항

요구 사항
대상 플랫폼 Windows
헤더 oaidl.h

추가 정보

ICreateTypeInfo