다음을 통해 공유


ADVF 열거형(objidl.h)

데이터 변경 내용의 캐싱 및 알림을 제어하는 플래그입니다.

Syntax

typedef enum tagADVF {
  ADVF_NODATA = 1,
  ADVF_PRIMEFIRST = 2,
  ADVF_ONLYONCE = 4,
  ADVF_DATAONSTOP = 64,
  ADVFCACHE_NOHANDLER = 8,
  ADVFCACHE_FORCEBUILTIN = 16,
  ADVFCACHE_ONSAVE = 32
} ADVF;

상수

 
ADVF_NODATA
값: 1
데이터 권고 연결(IDataObject::D Advise 또는 IDataAdviseHolder::Advise)의 경우 이 플래그는 데이터 개체가 IAdviseSink::OnDataChange를 호출할 때 데이터를 보내지 않도록 요청합니다. 변경 알림의 수신자는 나중에 IDataObject::GetData를 호출하여 데이터를 요청할 수 있습니다. 데이터 개체는 STGMEDIUM 매개 변수에 TYMED_NULL 전달하여 요청을 적용하거나 어쨌든 데이터를 제공할 수 있습니다. 예를 들어 데이터 개체에는 여러 권고 연결이 있을 수 있으며, 모든 ADVF_NODATA 지정하지 않을 수 있습니다. 이 경우 개체가 모든 연결에 동일한 알림을 보낼 수 있습니다. 컨테이너의 요청에 관계없이 IAdviseSink 구현은 TYMED_NULL 않은 경우 매체를 해제해야 하므로 STGMEDIUM 매개 변수를 검사 합니다.

캐시 연결(IOleCache::Cache)의 경우 이 플래그는 실행 중인 개체에 대한 변경 내용으로 캐시를 업데이트하지 않도록 요청합니다. 대신 컨테이너는 IOleCache::SetData를 명시적으로 호출하여 캐시를 업데이트합니다. 이 상황은 일반적으로 개체의 상징적인 측면이 캐시될 때 발생합니다.

ADVF_NODATA 보기 권고 연결(IViewObject::SetAdvise)에 유효한 플래그가 아니며 E_INVALIDARG 반환합니다.
ADVF_PRIMEFIRST
값: 2
IAdviseSink::OnDataChange(데이터 또는 자문 연결 보기)를 처음 호출하거나 캐시 연결의 경우 캐시를 업데이트하기 전에 개체가 데이터 또는 뷰가 변경되기를 기다리지 않도록 요청합니다. ADVF_ONLYONCE 사용되는 이 매개 변수는 비동기 IDataObject::GetData 호출을 제공합니다.
ADVF_ONLYONCE
값: 4
연결을 삭제하기 전에 개체에서 하나의 변경 알림만 만들거나 캐시를 업데이트하도록 요청합니다.

ADVF_ONLYONCE 하나의 데이터 또는 보기 알림을 보낸 후 권고 연결을 자동으로 삭제합니다. 권고 싱크는 하나의 IAdviseSink 호출만 수신합니다. 연결이 설정된 경우 0이 아닌 연결 식별자가 반환되므로 호출자는 이를 사용하여 첫 번째 변경 알림 전에 연결을 삭제할 수 있습니다.

데이터 변경 알림의 경우 ADVF_ONLYONCE 및 ADVF_PRIMEFIRST 조합은 사실상 비동기 IDataObject::GetData 호출을 제공합니다.

캐싱과 함께 사용하는 경우 ADVF_ONLYONCE 첫 번째 IAdviseSink::OnDataChange 알림을 수신할 때 캐시를 한 번만 업데이트합니다. 업데이트가 완료되면 개체와 캐시 간의 권고 연결이 끊어집니다. 권고 연결의 원본 개체는 Release 메서드를 호출합니다.
ADVF_DATAONSTOP
값: 64
데이터 advise 연결의 경우, 데이터에 대한 액세스 가능성을 보장합니다. 이 플래그는 데이터 개체가 닫히는 경우 호출을 사용하여 데이터를 제공하는 를 호출해야 임을 나타냅니다. 일반적으로 이 값은 ADVF_NODATA 함께 사용됩니다. thIAdviseSink::OnDataChange 가 값이 없으면 데이터가 없는 OnDataChange 호출이 싱크에 도달할 때까지 원본이 종료를 완료하고 데이터에 액세스할 수 없을 수 있습니다. 이 값을 지정하는 싱크는 전달되는 경우 OnDataChange 에 제공된 데이터를 수락해야 합니다. 다른 검색 기회를 얻지 못할 수 있기 때문입니다.

캐시 연결의 경우 이 플래그는 개체가 개체 닫기의 일부로 캐시를 업데이트해야 했음을 나타냅니다.

ADVF_DATAONSTOP 보기 권고 연결에 유효한 플래그가 아닙니다.
ADVFCACHE_NOHANDLER
값: 8
더 자주 사용되는 ADVFCACHE_FORCEBUILTIN 동의어입니다.
ADVFCACHE_FORCEBUILTIN
값: 16
이 값은 DLL 개체 애플리케이션과 해당 개체의 그리기를 수행하는 개체 처리기에서 사용됩니다. ADVFCACHE_FORCEBUILTIN OLE에 프레젠테이션 데이터를 캐시하도록 지시하여 캐시에 프레젠테이션이 있는지 확인합니다. 이 값은 데이터 또는 보기 권고 연결에 대한 유효한 플래그가 아닙니다. 캐시 연결의 경우 이 플래그는 IDataObject::GetData 또는 IViewObject::D raw를 사용하여 생성하기 위해 OLE(또는 기본 운영 체제)와 함께 제공되는 코드만 있어야 하는 데이터를 캐시합니다. 이 값을 지정하면 컨테이너는 개체 또는 처리기 코드를 사용할 수 없는 경우에도 데이터를 검색할 수 있도록 할 수 있습니다.
ADVFCACHE_ONSAVE
값: 32
캐시 연결의 경우, 이 플래그는 캐시가 들어 있는 개체가 저장될 때만 캐시된 표현을 업데이트합니다. 또한 OLE 개체가 실행 중 상태에서 로드된 상태로 다시 전환될 때 캐시가 업데이트됩니다(후속 저장 작업을 수행하려면 개체를 다시 실행해야 하기 때문). 이 값은 데이터 또는 보기 권고 연결에 대한 유효한 플래그가 아닙니다.

설명

데이터 또는 보기 권고 연결의 경우 컨테이너는 IAdviseSink instance IDataObject 또는 IViewObject instance 간의 연결을 설정할 때 ADVF 상수를 사용합니다. 이러한 연결은 IDataObject::D Advise, IDataAdviseHolder::Advise 또는 IViewObject::SetAdvise 메서드를 사용하여 설정됩니다.

캐싱 연결의 경우 상수는 IOleCache::Cache 메서드에 지정되어 개체가 캐시를 업데이트하는 방법에 대한 컨테이너의 요청을 나타냅니다.

이러한 상수는 STATDATA 구조체의 advf 멤버에도 사용됩니다. 이 구조체는 IEnumSTATDATA 에서 열거형 연결을 설명하는 데 사용되며 advf 멤버는 권고 또는 캐시 연결이 설정되었을 때 지정된 플래그를 나타냅니다. IOleObject::EnumAdvise 열거자에 STATDATA를 사용하면 advf 멤버가 확정되지 않습니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
머리글 objidl.h

추가 정보

IDataAdviseHolder

Idataobject

IEnumSTATDATA

IOleCache

IViewObject