다음을 통해 공유


StorageLayout 구조체(objidl.h)

StorageLayout 구조는 이름, 위치 및 길이를 포함한 단일 데이터 블록을 설명합니다. 복합 파일을 최적화하기 위해 애플리케이션 또는 레이아웃 도구는 ILayoutStorage::LayoutScript 호출에서 StorageLayout 구조의 배열을 전달합니다.

구문

typedef struct tagStorageLayout {
  DWORD         LayoutType;
  OLECHAR       *pwcsElementName;
  LARGE_INTEGER cOffset;
  LARGE_INTEGER cBytes;
} StorageLayout;

멤버

LayoutType

쓸 요소의 형식입니다. 값은 STGTY 열거형에서 가져옵니다. STGTY_STREAMpwcsElementName으로 명명된 데이터 블록을 읽는 것을 의미합니다. STGTY_STORAGEpwcsElementName에 지정된 스토리지를 여는 것을 의미합니다. STGTY_REPEAT 멀티미디어 애플리케이션에서 오디오, 비디오, 텍스트 및 기타 요소를 인터페이스하는 데 사용됩니다. 여는 STGTY_REPEAT 값은 뒤에 있는 요소가 지정된 횟수를 반복해야 한다는 것을 의미합니다. 닫는 STGTY_REPEAT 값은 반복할 요소의 끝을 표시합니다. 중첩된 STGTY_REPEAT 값 쌍이 허용됩니다.

pwcsElementName

스토리지 또는 스트림의 null로 종료된 유니코드 문자열 이름입니다. 요소가 하위 저장소 또는 포함된 개체인 경우 정규화된 스토리지 경로를 지정해야 합니다. 예를 들어 "RootStorageName\SubStorageName\Substream"입니다.

cOffset

LayoutType 멤버의 값이 STGTY_STREAM 경우 이 플래그는 pwscElementName 멤버에 명명된 steam의 시작 오프셋을 지정합니다.

LayoutTypeSTGTY_STORAGE 경우 이 플래그를 0으로 설정해야 합니다.

LayoutTypeSTGTY_REPEAT 경우 이 플래그를 0으로 설정해야 합니다.

cBytes

pwcsElementName에 명명된 데이터 블록의 길이(바이트)입니다.

LayoutTypeSTGTY_STREAM경우 cBytespwcsElementName으로 명명된 스트림에서 cOffset에서 읽을 바이트 수를 지정합니다.

LayoutTypeSTGTY_STORAGE 경우 이 플래그는 무시됩니다.

LayoutTypeSTGTY_REPEAT 경우 양의 cBytes는 반복 블록의 시작을 지정합니다. cBytes가 0인 STGTY_REPEAT 반복 블록의 끝을 표시합니다.

STG_TOEND 시작 블록 값은 각 스트림을 완전히 읽은 후 다음 블록의 요소를 반복하도록 지정합니다.

설명

StorageLayout 구조의 배열은 다음과 같이 나타날 수 있습니다.

StorageLayout arrScript[]=
    // Read first 2k of "WordDocument" stream
    {STGTY_STREAM,L"WordDocument",{0,0},{0,2048}},
 
    //Test if "ObjectPool\88112233" storage exists
    {STGTY_STORAGE,L"ObjectPool\\88112233",{0,0},{0,0}},
 
    //Read 2k at offset 1048 of "WordDocument" stream
    {STGTY_STREAM,L"WordDocument",{0,10480},{0,2048}},
 
    //Interlace "Audio", "Video", and "Caption" streams
    {STGTY_REPEAT,NULL,0,STG_TOEND},
        {STGTY_STREAM,L"Audio", {0,0},{0,2048}},    // 2k of Audio
        {STGTY_STREAM,L"Video", {0,0},{0,65536}},   // 64k of Video
        {STGTY_STREAM,L"Caption", {0,0},{0,128}},   // 128b of text
    {STGTY_REPEAT,NULL, {0,0},{0,0}}
};
참고cOffsetcBytes 매개 변수는 두 개의 32비트 멤버로 구성된 합집합으로 64비트 부가 정수 값을 나타내는 데 사용되는 LARGE_INTEGER 구조체입니다. 두 32비트 멤버는 DWORD LowPart 및 LONG HighPart가 구조체 멤버인 LARGE_INTEGER 구조체로 표현되어야 합니다. (LowPart는 하위 32비트를 지정하고 HighPart는 상위 32비트를 지정합니다.) 컴파일러에 64비트 정수에 대한 기본 제공 지원이 있는 경우 LARGE_INTEGER 구조체의 QuadPart 멤버를 사용하여 64비트 정수를 저장합니다.
 

요구 사항

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

추가 정보

ILayoutStorage::LayoutScript