StgCreateDocfile 함수(coml2api.h)

StgCreateDocfile 함수는 IStorage 인터페이스에 대한 COM 제공 복합 파일 구현을 사용하여 새 복합 파일 스토리지 개체를 만듭니다.

참고 애플리케이션은 향상된 구조적 스토리지 기능을 활용하려면 StgCreateDocfile 대신 새 함수인 StgCreateStorageEx를 사용해야 합니다. 이 함수인 StgCreateDocfile은 Windows 2000과의 호환성을 위해 여전히 존재합니다.
 

구문

HRESULT StgCreateDocfile(
  [in]  const WCHAR *pwcsName,
  [in]  DWORD       grfMode,
  [in]  DWORD       reserved,
  [out] IStorage    **ppstgOpen
);

매개 변수

[in] pwcsName

생성되는 복합 파일의 null로 끝나는 유니코드 문자열 이름에 대한 포인터입니다. 파일 시스템에 해석되지 않은 상태로 전달됩니다. 상대 이름 또는 NULL일 수 있습니다. NULL이면 임시 복합 파일이 고유한 이름으로 할당됩니다.

[in] grfMode

새 스토리지 개체를 열 때 사용할 액세스 모드를 지정합니다. 자세한 내용은 STGM 상수를 참조하세요. 호출자가 STGM_CREATE 또는 STGM_CONVERT 함께 트랜잭션 모드를 지정하는 경우 루트 스토리지에 대한 커밋 작업이 호출될 때 덮어쓰기 또는 변환이 수행됩니다. 루트 스토리지 개체에 대해 IStorage::Commit 이 호출되지 않으면 파일의 이전 내용이 복원됩니다. 트랜잭션 모드에서 파일을 덮어쓰거나 변환할 때 스냅샷 복사본이 필요하므로 STGM_CREATE 및 STGM_CONVERT STGM_NOSNAPSHOT 플래그와 결합할 수 없습니다.

[in] reserved

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

[out] ppstgOpen

새 스토리지 개체에 대한 IStorage 포인터의 위치에 대한 포인터입니다.

반환 값

StgCreateDocfileHRESULT에 래핑된 파일 시스템 오류 또는 시스템 오류를 반환할 수도 있습니다. 자세한 내용은 오류 처리 전략알 수 없는 오류 처리를 참조하세요.

설명

StgCreateDocfile 함수는 IStorage 인터페이스에 대한 COM 제공 복합 파일 구현을 사용하여 새 스토리지 개체를 만듭니다. 열려 있는 복합 파일의 이름은 IStorage::Stat 메서드를 호출하여 검색할 수 있습니다.

StgCreateDocfile 이 없으면 파일을 만듭니다. 있는 경우 grfMode 매개 변수에서 STGM_CREATE, STGM_CONVERT 및 STGM_FAILIFTHERE 플래그를 사용하면 진행 방법이 표시됩니다. 자세한 내용은 STGM 상수를 참조하세요.

복합 파일이 트랜잭션 모드로 열리고( grfMode 매개 변수가 STGM_TRANSACTED 지정) 이 이름의 파일이 이미 있는 경우 모든 미해결 변경 내용이 커밋될 때까지 기존 파일이 변경되지 않습니다. 호출 프로세스에서 파일 시스템의 액세스 제어로 인해 기존 파일에 대한 쓰기 액세스 권한이 없는 경우 grfMode 매개 변수는 STGM_READ만 지정할 수 있으며 STGM_WRITE 또는 STGM_READWRITE 지정할 수 없습니다. 결과 새 열린 복합 파일은 계속 작성할 수 있지만 후속 커밋 작업이 실패합니다(트랜잭션 모드에서는 커밋 시 쓰기 권한이 적용됨).

STGM_SIMPLE 지정하면 제한되지만 자주 사용되는 경우 복합 파일 개체를 훨씬 더 빠르게 구현할 수 있습니다. 여러 스트림이 있고 스토리지가 없는 복합 파일 구현이 필요한 애플리케이션에서 사용할 수 있습니다. 단순 모드는 IStorage의 모든 메서드를 지원하지 않습니다. 자세한 내용은 STGM 상수를 참조하세요.

grfMode 매개 변수가 STGM_TRANSACTED 지정하고 pwcsName 매개 변수로 지정된 이름을 가진 파일이 아직 없는 경우 파일이 즉시 만들어집니다. 액세스 제어 파일 시스템에서 호출자는 복합 파일이 만들어지는 파일 시스템 디렉터리에 쓰기 권한이 있어야 합니다. STGM_TRANSACTED 지정하지 않고 STGM_CREATE 지정한 경우 새 파일을 만들기 전에 이름이 같은 기존 파일이 제거됩니다.

StgCreateDocfile을 사용하여 pwcsName 매개 변수에 대한 NULL 값을 전달하여 임시 복합 파일을 만들 수 있습니다. 그러나 이러한 파일은 시스템에서 제공하는 고유한 이름(사용자에게 의미가 없는 이름)을 가지고 있다는 점에서만 일시적일 수 있습니다. 호출자는 grfMode 매개 변수에 대해 STGM_DELETEONRELEASE 지정하지 않은 한 임시 파일을 완료할 때 삭제할 책임이 있습니다.

요구 사항

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

추가 정보

STGM 상수

StgCreateDocFileOnILockBytes

StgCreateStorageEx