IStorage::OpenStorage 메서드(objidl.h)

OpenStorage 메서드는 지정된 액세스 모드에서 지정된 이름의 기존 스토리지 개체를 엽니다.

구문

HRESULT OpenStorage(
  [in]  const OLECHAR *pwcsName,
  [in]  IStorage      *pstgPriority,
  [in]  DWORD         grfMode,
  [in]  SNB           snbExclude,
  [in]  DWORD         reserved,
  [out] IStorage      **ppstg
);

매개 변수

[in] pwcsName

열 스토리지 개체의 이름을 포함하는 와이드 문자 null로 끝나는 유니코드 문자열에 대한 포인터입니다. 스트림/스토리지 이름의 첫 번째 문자로 사용되는 000~01f 문자는 OLE에서 사용하도록 예약되어 있습니다. 이는 구조적 스토리지 제한이 아닌 복합 파일 제한입니다. pstgPriorityNULL이 아닌 경우 무시됩니다.

[in] pstgPriority

NULL이어야 합니다. NULL이 아닌 값은 STG_E_INVALIDPARAMETER 반환합니다.

[in] grfMode

스토리지 개체를 열 때 사용할 액세스 모드를 지정합니다. 가능한 값에 대한 설명은 STGM 상수를 참조하세요. 선택한 다른 모드는 이 메서드를 호출할 때 적어도 STGM_SHARE_EXCLUSIVE 지정해야 합니다.

[in] snbExclude

NULL이어야 합니다. NULL이 아닌 값은 STG_E_INVALIDPARAMETER 반환합니다.

[in] reserved

나중에 사용하도록 예약되어 있습니다. 0이어야 합니다.

[out] ppstg

성공하면 열린 스토리지 개체에 대한 IStorage 포인터의 위치에 대한 포인터입니다. 오류가 발생하면 이 매개 변수가 NULL 로 설정됩니다.

반환 값

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

반환 코드 설명
S_OK 스토리지 개체가 성공적으로 열렸습니다.
E_PENDING 비동기 스토리지만 해당: 스토리지 데이터의 일부 또는 전부를 현재 사용할 수 없습니다.
STG_E_ACCESSDENIED 스토리지 개체를 열 수 있는 권한이 부족합니다.
STG_E_FILENOTFOUND 지정된 이름의 스토리지 개체가 없습니다.
STG_E_INSUFFICIENTMEMORY 메모리 부족으로 인해 스토리지 개체가 열리지 않았습니다.
STG_E_INVALIDFLAG grfMode 매개 변수에 지정된 값이 유효한 STGM 상수 값이 아닙니다.
STG_E_INVALIDFUNCTION grfMode 매개 변수의 지정된 플래그 조합은 지원되지 않습니다.
STG_E_INVALIDNAME pwcsName에 유효한 값이 아닙니다.
STG_E_INVALIDPOINTER 스토리지 개체에 대해 지정된 포인터가 잘못되었습니다.
STG_E_INVALIDPARAMETER 매개 변수 중 하나가 잘못되었습니다.
STG_E_REVERTED 스토리지 개체는 트랜잭션 트리에서 위의 되돌리기 작업에 의해 무효화되었습니다.
STG_E_TOOMANYOPENFILES 열려 있는 파일이 너무 많기 때문에 스토리지 개체가 만들어지지 않았습니다.
STG_S_CONVERTED 지정된 이름의 기존 스트림이 CONTENTS라는 단일 스트림을 포함하는 새 스토리지 개체로 대체되었습니다. 직접 모드에서 새 스토리지는 디스크에 즉시 기록됩니다. 트랜잭션 모드에서 새 스토리지는 메모리의 임시 스토리지에 기록되고 나중에 커밋될 때 디스크에 기록됩니다.

설명

pstgPriority 매개 변수가 NULL이면 무시됩니다. pstgPriority 매개 변수가 NULL이 아닌 경우 스토리지 개체의 요소(일반적으로 우선 순위 모드로 열린 요소)의 이전 열기에 대한 IStorage 포인터입니다. grfMode에 따라 스토리지 개체를 닫고 다시 열어야 합니다. IStorage::OpenStorage 메서드가 반환되면 pstgPriority가 더 이상 유효하지 않습니다. ppstg 매개 변수에 제공된 값을 사용합니다.

스토리지 개체는 STGM_DELETEONRELEASE 사용하여 열 수 있습니다. 이 경우 개체는 최종 릴리스를 받으면 제거됩니다. 임시 스토리지 개체를 만드는 데 유용합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows 2000 Server [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 objidl.h
라이브러리 Uuid.lib
DLL Ole32.dll

추가 정보

IStorage - 복합 파일 구현

IStorage::CreateStorage