1 /*******************************************************************************
3 * This file is part of the Ogg Vorbis DirectShow filter collection *
5 * Copyright (c) 2001, Tobias Waldvogel *
6 * All rights reserved. *
8 * Redistribution and use in source and binary forms, with or without *
9 * modification, are permitted provided that the following conditions are met: *
11 * - Redistributions of source code must retain the above copyright notice, *
12 * this list of conditions and the following disclaimer. *
14 * - Redistributions in binary form must reproduce the above copyright notice, *
15 * this list of conditions and the following disclaimer in the documentation *
16 * and/or other materials provided with the distribution. *
18 * - The names of the contributors may not be used to endorse or promote *
19 * products derived from this software without specific prior written *
22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" *
23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE *
24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE *
25 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE *
26 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR *
27 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF *
28 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS *
29 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN *
30 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) *
31 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE *
32 * POSSIBILITY OF SUCH DAMAGE. *
34 *******************************************************************************/
36 #ifndef __CPERSIST_PROPERTY_BAG__
37 #define __CPERSIST_PROPERTY_BAG__
47 CRegistryStuff(const GUID
* pClsID
);
49 HRESULT
SaveToRegistry(const char* szName
, bool bVal
);
50 HRESULT
SaveToRegistry(const char* szName
, __int32 iVal
);
51 HRESULT
SaveToRegistry(const char* szName
, unsigned __int32 iVal
);
52 HRESULT
SaveToRegistry(const char* szName
, float fVal
);
53 HRESULT
SaveToRegistry(const char* szName
, char* szVal
);
54 HRESULT
SaveToRegistry(const char* szName
, wchar_t* wzVal
);
55 HRESULT
LoadFromRegistry(const char* szName
, bool* pbVal
, bool bDefault
);
56 HRESULT
LoadFromRegistry(const char* szName
, __int32
* piVal
, __int32 iDefault
);
57 HRESULT
LoadFromRegistry(const char* szName
, unsigned __int32
* piVal
, unsigned __int32 iDefault
);
58 HRESULT
LoadFromRegistry(const char* szName
, float* pfVal
, float fDefault
);
62 class CPersistPropertyBag
: public IPersistPropertyBag
66 const char** m_arProps
;
69 CPersistPropertyBag(const char** arProps
, int iProps
, const GUID
* pClsID
);
71 HRESULT STDMETHODCALLTYPE
InitNew(void);
72 HRESULT STDMETHODCALLTYPE
GetClassID(CLSID
*pClsID
);
73 HRESULT STDMETHODCALLTYPE
Load(IPropertyBag
*pPropBag
, IErrorLog
*pErrorLog
);
74 HRESULT STDMETHODCALLTYPE
Save(IPropertyBag
*pPropBag
, BOOL fClearDirty
,
75 BOOL fSaveAllProperties
);
77 virtual HRESULT STDMETHODCALLTYPE
Read(LPCOLESTR pszPropName
, VARIANT
*pVar
, IErrorLog
*pErrorLog
) = 0;
78 virtual HRESULT STDMETHODCALLTYPE
Write(LPCOLESTR pszPropName
, VARIANT
*pVar
) = 0;