
	                	                 
COMPersistHelper::SaveToStream은 OLE 컴포넌트의 상태를 저장하는 메서드입니다. 이 메서드를 호출하여 컴포넌트의 상태를 저장하려면, 컴포넌트가 OLE의 Persist 인터페이스를 구현해야 합니다. 
Persist 인터페이스는 컴포넌트의 상태를 저장하고, 저장된 상태를 불러올 수 있는 메서드를 제공합니다. 컴포넌트가 Persist 인터페이스를 구현하지 않았다면, SaveToStream 메서드를 호출하여도 컴포넌트의 상태가 저장되지 않을 것입니다.
Persist 인터페이스를 구현하는 컴포넌트의 예제는 다음과 같습니다.
#hostingforum.kr
cpp
class CMyComponent : public IPersist
{
public:
    HRESULT SaveToStream(IStream* pStream)
    {
        // 컴포넌트의 상태를 저장하는 코드를 구현합니다.
        // 예를 들어, 컴포넌트의 속성을 저장하는 코드를 구현할 수 있습니다.
        // ...
        return S_OK;
    }
    HRESULT Load(IStream* pStream)
    {
        // 저장된 컴포넌트의 상태를 불러오는 코드를 구현합니다.
        // 예를 들어, 컴포넌트의 속성을 불러오는 코드를 구현할 수 있습니다.
        // ...
        return S_OK;
    }
};
이 컴포넌트는 IPersist 인터페이스를 구현하여 SaveToStream 메서드를 구현했습니다. 이 메서드는 컴포넌트의 상태를 저장하는 코드를 구현해야 합니다.
SaveToStream 메서드를 호출하여 컴포넌트의 상태를 저장하려면, 컴포넌트의 인스턴스를 생성하고, SaveToStream 메서드를 호출하는 코드를 구현해야 합니다.
#hostingforum.kr
cpp
int main()
{
    CMyComponent component;
    IStream* pStream;
    HRESULT hr = S_OK;
    // 컴포넌트의 상태를 저장하는 코드를 구현합니다.
    hr = component.SaveToStream(&pStream);
    if (SUCCEEDED(hr))
    {
        // 저장된 컴포넌트의 상태를 불러오는 코드를 구현합니다.
        hr = component.Load(pStream);
        if (SUCCEEDED(hr))
        {
            // 컴포넌트의 상태가 저장되어 있습니다.
        }
    }
    return 0;
}
이 코드는 컴포넌트의 상태를 저장하고, 저장된 상태를 불러오는 코드를 구현했습니다. 컴포넌트의 상태가 저장되어 있으면, 컴포넌트의 상태가 저장된 상태로 불러올 수 있습니다.
2025-04-13 14:19