다음을 통해 공유


IOleCache::Cache 메서드(oleidl.h)

포함된 개체 내에 캐시할 형식 및 기타 데이터를 지정합니다.

구문

HRESULT Cache(
  [in]  FORMATETC *pformatetc,
  [in]  DWORD     advf,
  [out] DWORD     *pdwConnection
);

매개 변수

[in] pformatetc

캐시할 형식 및 기타 데이터를 지정하는 FORMATETC 구조체에 대한 포인터입니다. 뷰 캐싱은 pformatetc로 클립보드 형식 0을 전달하여 지정됩니다.

[in] advf

캐싱을 제어하는 플래그 그룹입니다. 가능한 값은 ADVF 열거형에서 가져옵니다. 이 컨텍스트에서 캐시에 사용할 경우 이러한 값은 설명에 설명된 특정 의미를 가집니다. 자세한 설명은 ADVF 열거형을 참조하세요.

[out] pdwConnection

나중에 IOleCache::Uncache에 전달하여 캐싱을 해제하는 데 사용할 수 있는 이 연결의 식별자를 수신하는 변수에 대한 포인터입니다. 이 값이 0이면 연결이 설정되지 않았습니다. OLE 제공 구현은 연결 식별자에 0이 아닌 숫자를 사용합니다.

반환 값

이 메서드는 성공에 대한 S_OK 반환합니다. 가능한 다른 반환 값은 다음과 같습니다.

반환 코드 설명
E_INVALIDARG
제공된 pformatetc 또는 advf 인수가 잘못되었습니다.
E_UNEXPECTED
예기치 않은 오류가 발생했습니다.
E_OUTOFMEMORY
작업에 사용할 수 있는 메모리가 부족합니다.
CACHE_S_FORMATETC_NOTSUPPORTED
캐시가 만들어졌지만 개체 애플리케이션은 지정된 형식을 지원하지 않습니다. 형식이 지원되지 않는 경우에도 캐시 만들기가 성공하여 호출자가 캐시를 채울 수 있습니다. 그러나 호출자가 캐시를 유지할 필요가 없는 경우 IOleCache::Uncache를 호출합니다.
CACHE_S_SAMECACHE
IOleCache::Uncache에 전달된 FORMATETC에 대한 캐시가 이미 있습니다. 이 경우 새 조언 플래그가 캐시에 할당되고 이전에 할당된 연결 식별자가 반환됩니다.
DV_E_LINDEX
pformatetc-lindex>의 값이 잘못되었습니다. 현재 -1만 지원됩니다.
DV_E_TYMED
값이 pformatetc-tymed>에 유효하지 않습니다.
DV_E_DVASPECT
값이 pformatetc-dwAspect>에 유효하지 않습니다.
DV_E_CLIPFORMAT
값이 pformatetc-cfFormat>에 유효하지 않습니다.
CO_E_NOTINITIALIZED
캐시의 스토리지가 초기화되지 않았습니다.
DV_E_DVTARGETDEVICE
값이 pformatetc-ptd>에 유효하지 않습니다.
OLE_E_STATIC
캐시는 정적 개체에 대한 것이며 이미 캐시 노드가 있습니다.

설명

IOleCache::Cache 는 데이터 캐싱 또는 뷰(프레젠테이션) 캐싱을 지정할 수 있습니다. 데이터 캐싱을 지정하려면 유효한 데이터 형식을 pformatetc로 전달해야 합니다. 뷰 캐싱의 경우 캐시 개체 자체는 캐시할 형식을 결정하므로 호출자는 다음과 같이 pformatetc 에서 0 데이터 형식을 전달합니다.

pFormatetc->cfFormat == 0

사용자 지정 개체 처리기는 지정된 형식으로 데이터를 저장하지 않도록 선택할 수 있습니다. 대신 요청 시 요청 시 합성할 수 있습니다.

advf 값은 ADVF 열거형의 멤버를 지정합니다. 이러한 값 중 하나(또는 둘 이상의 값의 OR 조합)가 이 컨텍스트에서 사용되는 경우 이러한 값은 다음을 의미합니다.

ADVF 값 Description
ADVF_NODATA 실행 중인 개체에 대한 변경 내용으로 캐시를 업데이트할 수 없습니다. 대신 컨테이너는 IOleCache::SetData, IDataObject::SetData 또는 IOleCache2::UpdateCache를 명시적으로 호출하여 캐시를 업데이트합니다. 이 플래그는 일반적으로 개체의 상징적인 측면이 캐시될 때 사용됩니다.
ADVF_ONLYONCE 캐시를 한 번만 업데이트합니다. 업데이트가 완료되면 개체와 캐시 간의 권고 연결이 끊어집니다. 권고 연결의 원본 개체는 Release 메서드를 호출합니다.
ADVF_PRIMEFIRST 개체는 캐시를 업데이트하기 전에 데이터 또는 뷰가 변경되기를 기다리지 않습니다. 또는 ADVF_ONLYONCE 이 매개 변수는 비동기 IDataObject::GetData 호출을 제공합니다.
ADVFCACHE_NOHANDLER ADVFCACHE_FORCEBUILTIN 동의어입니다.
ADVFCACHE_FORCEBUILTIN DLL 개체 애플리케이션 및 개체 처리기에서 개체를 그려 프레젠테이션 데이터를 캐시하여 캐시에 프레젠테이션이 있는지 확인하는 데 사용됩니다. 이렇게 하면 개체 또는 처리기 코드를 사용할 수 없는 경우에도 데이터를 검색할 수 있습니다.
ADVFCACHE_ONSAVE 캐시가 포함된 개체가 저장된 경우에만 캐시된 표현을 업데이트. 또한 OLE 개체가 실행 중 상태에서 로드된 상태로 다시 변경될 때 캐시가 업데이트됩니다(후속 저장 작업을 수행하려면 개체를 다시 실행해야 하기 때문).

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 oleidl.h

추가 정보

IOleCache

IOleCache::Uncache