DirectShow DirectShow 레퍼런스 DirectShow base class base class 레퍼런스 CPersistStream [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
CPersistStream 는, 필터의 영속적인 프로퍼티 (보존된 그래프의 필터 프로퍼티)의 base class이다.
CPersistStream 를 사용하는 간단한 방법은 다음과 같다.
Unicode™ 의 데이터를 보존하는 경우는, WCHAR 가 2 바이트인 것에 주의한다.
버전 번호
어떤 시점으로, 데이터의 포맷을 변경 또는 확장하고 싶은 경우가 있다. 이 경우, 이전에 보존한 모든 스트림에 버전 번호를 붙여, 스트림을 읽어냈을 때에, 스트림이 낡은 포맷인지, 새로운 포맷인지를 구별할 수 있도록(듯이) 할 필요가 있다. 이것을 실시하기 위해서(때문에), 이 클래스는 버전 번호의 읽고 쓰기를 실시한다. 쓰기시에는, 이 클래스는 GetSoftwareVersion 를 호출해, 그 때에 사용되고 있는 소프트웨어의 버전을 문의한다. 실질적으로, 이것이 파일내의 데이터 레이아웃의 버전 번호가 된다. 이 클래스는, 데이터내의 최초의 항목으로서 이것을 기입한다. 버전 번호를 변경하는 경우는,GetSoftwareVersion 를 처리 (오버라이드(override)) 한다. 이 클래스는,ReadFromStream 를 호출하기 전에, 파일로부터 mPS_dwFileVersion 에 버전 번호를 읽어내므로,ReadFromStream 로 mPS_dwFileVersion 를 체크해, 낡은 버전의 파일을 읽어내고 있는지를 확인할 수 있다. 보통, 파일을 읽어내는 소프트웨어의 버전 이전의 버전의 파일을 받아들일 필요가 있다.
프로텍트 데이터 멤버
mPS_dwFileVersion | 파일의 버전 번호. |
mPS_fDirty | 이 스트림의 데이터를 보존해야 한다. |
멤버 함수
CPersistStream | CPersistStream 개체를 생성 한다. |
SetDirty | 개체를 스트림에 보존해야 하는 것을 나타낸다. |
오버라이드(override) 가능한 멤버 함수
GetClassID | 이 스트림의 클래스 식별자를 얻어온다. |
GetSoftwareVersion | 이 파일 포맷의 버전 번호를 얻어온다. |
ReadFromStream | 스트림으로부터 필터의 데이터를 읽어낸다. |
SizeMax | 데이터로 필요한 바이트수 (버전 번호를 포함하지 않는다)를 얻어온다. |
WriteToStream | 스트림에 필터의 데이터를 기입한다. |
CPersistStream 는 IPersistStream 를 처리 한다. 처리의 더 자세한 정보는, Microsoft Platform SDK 의 「COM 레퍼런스」를 참조할것.
처리 되는 IPersistStream 메서드
GetSizeMax | 데이터로 필요한 바이트수 (버전 번호를 포함한다)를 얻어온다. |
IsDirty | 개체를 보존해야 하는지 어떤지를 체크한다. |
Load | 데이터를 스트림으로부터 메모리에 로드한다. |
Save | 데이터를 메모리로부터 스트림에 보존한다. |