/*************************************************************************/ /* Copyright (C) 1999 Microsoft Corporation */ /* File: MSDVDAdm.h */ /* Description: Declaration of the CMSDVDAdm */ /* Author: Fang Wang */ /*************************************************************************/ #ifndef __MSDVDADM_H_ #define __MSDVDADM_H_ #include "resource.h" // main symbols #include #define MAX_PASSWD 256 #define PRE_PASSWD 20 #define MAX_SECTION 20 #define MAX_RATE 10 #define LEVEL_G 1 #define LEVEL_PG 3 #define LEVEL_PG13 4 #define LEVEL_R 6 #define LEVEL_NC17 7 #define LEVEL_ADULT 8 #define LEVEL_DISABLED -1 ///////////////////////////////////////////////////////////////////////////// // CMSDVDAdm class ATL_NO_VTABLE CMSDVDAdm : public CComObjectRootEx, public IDispatchImpl, public IObjectWithSiteImplSec, public CComCoClass, public ISupportErrorInfo { public: CMSDVDAdm(); virtual ~CMSDVDAdm(); DECLARE_REGISTRY_RESOURCEID(IDR_MSDVDADM) DECLARE_PROTECT_FINAL_CONSTRUCT() BEGIN_COM_MAP(CMSDVDAdm) COM_INTERFACE_ENTRY(IMSDVDAdm) COM_INTERFACE_ENTRY(IDispatch) COM_INTERFACE_ENTRY(IObjectWithSite) COM_INTERFACE_ENTRY(ISupportErrorInfo) END_COM_MAP() BEGIN_PROP_MAP(CMSDVDAdm) END_PROP_MAP() // ISupportsErrorInfo STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid); // IMSDVDAdm public: STDMETHOD(get_DefaultMenuLCID)(/*[out, retval]*/ long *pVal); STDMETHOD(put_DefaultMenuLCID)(/*[in]*/ long newVal); STDMETHOD(get_DefaultSubpictureLCID)(/*[out, retval]*/ long *pVal); STDMETHOD(put_DefaultSubpictureLCID)(/*[in]*/ long newVal); STDMETHOD(get_DefaultAudioLCID)(/*[out, retval]*/ long *pVal); STDMETHOD(put_DefaultAudioLCID)(/*[in]*/ long newVal); STDMETHOD(GetParentalCountry)(long *lCountry); STDMETHOD(GetParentalLevel)(long *lLevel); STDMETHOD(_ConfirmPassword)(BSTR strUserName, BSTR szPassword, VARIANT_BOOL *fRight); STDMETHOD(get_DisableScreenSaver)(/*[out, retval]*/ VARIANT_BOOL *pVal); STDMETHOD(put_DisableScreenSaver)(/*[in]*/ VARIANT_BOOL newVal); STDMETHOD(ChangePassword)(BSTR strUserName, BSTR strOld, BSTR strNew); STDMETHOD(ConfirmPassword)(BSTR strUserName, BSTR szPassword, VARIANT_BOOL *fRight); STDMETHOD(SaveParentalLevel)(long lParentalLevel,BSTR strUserName, BSTR strPassword); STDMETHOD(SaveParentalCountry)(long lCountry,BSTR strUserName, BSTR strPassword); STDMETHOD(get_BookmarkOnStop)(/*[out, retval]*/ VARIANT_BOOL *pVal); STDMETHOD(put_BookmarkOnStop)(/*[in]*/ VARIANT_BOOL newVal); STDMETHOD(get_BookmarkOnClose)(/*[out, retval]*/ VARIANT_BOOL *pVal); STDMETHOD(put_BookmarkOnClose)(/*[in]*/ VARIANT_BOOL newVal); STDMETHOD(RestoreScreenSaver)(); protected: long m_lParentctrlLevel; long m_lParentctrlCountry; VARIANT_BOOL m_fDisableScreenSaver; BOOL m_bScrnSvrOld; BOOL m_bPowerlowOld; BOOL m_bPowerOffOld; VARIANT_BOOL m_fBookmarkOnStop; VARIANT_BOOL m_fBookmarkOnClose; HRESULT EncryptPassword(LPTSTR lpPassword, BYTE **lpAssaultedHash, DWORD *dwCryptLen, DWORD *dwAssault, BOOL genAssault); HRESULT DisableScreenSaver(); HRESULT SaveScreenSaver(); HRESULT HandleError(HRESULT hr); }; // Lame functions that default to hklm BOOL SetRegistryString(const TCHAR *pKey, TCHAR *szString, DWORD dwLen); BOOL GetRegistryString(const TCHAR *pKey, TCHAR *szRet, DWORD *dwLen, TCHAR *szDefault); BOOL SetRegistryDword(const TCHAR *pKey, DWORD dwRet); BOOL GetRegistryDword(const TCHAR *pKey, DWORD *dwRet, DWORD dwDefault); BOOL SetRegistryBytes(const TCHAR *pKey, BYTE *szString, DWORD dwLen); BOOL GetRegistryBytes(const TCHAR *pKey, BYTE *szRet, DWORD *dwLen); // Not so lame functions that use hkcu BOOL SetRegistryStringCU(const TCHAR *pKey, TCHAR *szString, DWORD dwLen); BOOL GetRegistryStringCU(const TCHAR *pKey, TCHAR *szRet, DWORD *dwLen, TCHAR *szDefault); BOOL SetRegistryDwordCU(const TCHAR *pKey, DWORD dwRet); BOOL GetRegistryDwordCU(const TCHAR *pKey, DWORD *dwRet, DWORD dwDefault); BOOL SetRegistryBytesCU(const TCHAR *pKey, BYTE *szString, DWORD dwLen); BOOL GetRegistryBytesCU(const TCHAR *pKey, BYTE *szRet, DWORD *dwLen); LPTSTR LoadStringFromRes(DWORD redId); #endif //__MSDVDADM_H_ /*************************************************************************/ /* End of file: MSDVDAdm.h */ /*************************************************************************/