다음을 통해 공유


ITypeComp::Bind 메서드(oaidl.h)

이름을 형식 멤버에 매핑하거나 형식 라이브러리에 있는 전역 변수와 함수를 바인딩합니다.

구문

HRESULT Bind(
  [in]  LPOLESTR  szName,
  [in]  ULONG     lHashVal,
  [in]  WORD      wFlags,
  [out] ITypeInfo **ppTInfo,
  [out] DESCKIND  *pDescKind,
  [out] BINDPTR   *pBindPtr
);

매개 변수

[in] szName

바인딩할 이름입니다.

[in] lHashVal

LHashValOfNameSys에서 계산한 이름의 해시 값입니다.

[in] wFlags

INVOKEKIND 열거형에 정의된 하나 이상의 플래그입니다. 이름이 메서드 또는 속성으로 참조되었는지 여부를 지정합니다. 변수에 바인딩할 때 플래그 INVOKE_PROPERTYGET 지정합니다. 모든 형식의 멤버에 바인딩하려면 0을 지정합니다.

[out] ppTInfo

FUNCDESC 또는 VARDESC가 반환된 경우 ppTInfo 는 바인딩된 항목이 포함된 형식 설명에 대한 포인터를 가리킵니다.

[out] pDescKind

바인딩된 이름이 VARDESC, FUNCDESC 또는 TYPECOMP인지 여부를 나타냅니다. 일치하는 항목이 없으면 DESCKIND_NONE.

[out] pBindPtr

바인딩된 VARDESC, FUNCDESC 또는 ITypeComp 인터페이스입니다.

반환 값

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

반환 코드 설명
S_ok
성공.
E_INVALIDARG
하나 이상의 인수가 잘못되었습니다.
E_OUTOFMEMORY
메모리가 부족하여 작업을 완료할 수 없습니다.

설명

형식의 변수 및 메서드에 바인딩하거나 형식 라이브러리의 전역 변수 및 메서드에 바인딩하는 경우 Bind 를 사용합니다. 반환된 DESCKIND 포인터 pDescKind는 이름이 VARDESC, FUNCDESC 또는 ITypeComp instance 바인딩되었는지 여부를 나타냅니다. 반환 된 pBindPtr 은 VARDESC, FUNCDESC 또는 ITypeComp를 가리킵니다.

데이터 멤버 또는 메서드가 바인딩된 경우 ppTInfopoints는 메서드 또는 데이터 멤버를 포함하는 형식 설명에 연결합니다.

Bind가 이름을 중첩된 바인딩 컨텍스트에 바인딩하는 경우 pBindPtrITypeComp instance 대한 포인터와 ppTInfo의 null 형식 설명 포인터를 반환합니다. 예를 들어 형식 설명의 이름이 모듈(TKIND_MODULE), 열거형(TKIND_ENUM) 또는 coclass(TKIND_COCLASS)에 전달되는 경우 Bind는 모듈, 열거형 또는 coclass에 대한 형식 설명의 ITypeComp instance 반환합니다. 이 기능은 형식 설명의 멤버에 대한 참조를 형식 설명의 이름으로 정규화할 수 있도록 하는 Visual Basic과 같은 언어를 지원합니다. 예를 들어 모듈의 함수는 modulename으로 참조할 수 있습니다. functionname.

application 개체로 표시된 TKIND_ENUM, TKIND_MODULE 및 TKIND_COCLASS 형식의 멤버는 모듈의 이름을 지정하지 않고 ITypeComp에서 직접 바인딩할 수 있습니다. coclass의 ITypeComp 는 기본 인터페이스의 ITypeComp 로 지연됩니다.

ITypeComp, ITypeInfo 및 ITypeInfo의 다른 메서드와 마찬가지로 호출 코드는 반환된 개체 인스턴스 또는 구조를 해제합니다. VARDESC 또는 FUNCDESC가 반환되는 경우 호출자는 반환된 형식 설명을 사용하여 삭제하고 형식 설명을 instance 해제해야 합니다. 그렇지 않으면 ITypeComp instance 반환되면 호출자는 ITypeComp를 해제해야 합니다.

특수 규칙은 형식 라이브러리의 Bind 메서드를 호출하여 Application 개체 클래스의 멤버 이름(TYPEFLAG_FAPPOBJECT 플래그 집합이 있는 클래스)의 이름을 전달하는 경우에 적용됩니다. 이 경우 Bind는 pDescKind의 DESCKIND_IMPLICITAPPOBJ, pBindPtr의 Application 개체를 설명하는 VARDESC 및 ppTInfo에 있는 Application 개체 클래스의 ITypeInfo를 반환합니다. 개체에 바인딩하려면 ITypeInfo::GetTypeComp 를 호출하여 Application 개체 클래스의 ITypeComp 를 가져와야 합니다. 그런 다음, 해당 Bind 메서드를 형식 라이브러리의 ITypeComp에 처음 전달된 이름으로 다시 호출해야 합니다.

호출자는 반환된 ITypeInfo 포인터(ppTInfo)를 사용하여 멤버의 주소를 가져와야 합니다.

참고wflags 매개 변수는 IDispatch::Invokewflags 매개 변수와 동일합니다.
 

요구 사항

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

추가 정보

Itypecomp