在使用YUV Player Deluxe时,发现其可保存上一次的参数,研究之后,才知道它是使用注册表来实现的。下面是YUV播放器与注册表有关的函数接口,注册表与了我的大名外,其它值是参照YUV Player Deluxe的。在写这篇文章时,还没有空完全实现播放参数的保存,主要是用户自定义的分辨率的添加和删除,还要排序。有点工作量。
判断注册表节点是否存在函数:
1 | BOOL CSettingDlg::ExistRegistration() |
写注册表函数:
1 | void CSettingDlg::SetRegistration(CString& strSize, int width, int height, int fpsidx, int fmt, int loop) |
读注册表函数:
1 | void CSettingDlg::GetRegistration(CString& strSize, int& width, int& height, int& fpsidx, int& fmt, int& loop) |
在AddedSize参数中,本来是使用strSize.GetBuffer()来存储获取的值(即分辨率),在调试时,发现会有错误,于是改用szBuffer。因为在类中使用m_strAddedSize,在构造函数里,我已经按默认值初始化一次,可能CString长度固定了,后来添加分辨率的话,长度变长,会有溢出。纯粹是个人猜测。
在初始化时,会去读注册表的值,如不存在,会先将默认值写进去。
1 | // default |
李迟 2015.8.15 晚