资源简介
foobar2000源代码,最新版本,研究音频播放的好东西。foobar2000源代码,最新版本,研究音频播放的好东西。foobar2000源代码,最新版本,研究音频播放的好东西。foobar2000源代码,最新版本,研究音频播放的好东西。foobar2000源代码,最新版本,研究音频播放的好东西。foobar2000源代码,最新版本,研究音频播放的好东西。
代码片段和文件信息
#include “stdafx.h“
#include // CLSID_AutoComplete
#include “../helpers/COM_utils.h“
#include “../helpers/dropdown_helper.h“
namespace {
class CEnumString : public IEnumString {
public:
typedef pfc::chain_list_v2_t > t_data;
CEnumString(const t_data & in) : m_data(in) {m_walk = m_data.first();}
CEnumString() {}
void AddString(const TCHAR * in) {
m_data.insert_last()->set_data_fromptr(in _tcslen(in) + 1);
m_walk = m_data.first();
}
void AddStringU(const char * in t_size len) {
pfc::array_t & arr = * m_data.insert_last();
arr.set_size( pfc::stringcvt::estimate_utf8_to_wide( in len ) );
pfc::stringcvt::convert_utf8_to_wide( arr.get_ptr() arr.get_size() in len);
m_walk = m_data.first();
}
void AddStringU(const char * in) {
pfc::array_t & arr = * m_data.insert_last();
arr.set_size( pfc::stringcvt::estimate_utf8_to_wide( in ) );
pfc::stringcvt::convert_utf8_to_wide_unchecked( arr.get_ptr() in );
m_walk = m_data.first();
}
void ResetStrings() {m_walk.invalidate(); m_data.remove_all();}
typedef ImplementCOMRefCounter TImpl;
COM_QI_BEGIN()
COM_QI_ENTRY(IUnknown)
COM_QI_ENTRY(IEnumString)
COM_QI_END()
HRESULT STDMETHODCALLTYPE Next( ULONG celt LPOLESTR *rgelt ULONG *pceltFetched) {
if (rgelt == NULL) return E_INVALIDARG;
ULONG done = 0;
while( done < celt && m_walk.is_valid()) {
rgelt[done] = CoStrDup(m_walk->get_ptr());
++m_walk; ++done;
}
if (pceltFetched != NULL) *pceltFetched = done;
return done == celt ? S_OK : S_FALSE;
}
static TCHAR * CoStrDup(const TCHAR * in) {
const size_t lenBytes = (_tcslen(in) + 1) * sizeof(TCHAR);
TCHAR * out = reinterpret_cast(CoTaskMemAlloc(lenBytes));
if (out) memcpy(out in lenBytes);
return out;
}
HRESULT STDMETHODCALLTYPE Skip(ULONG celt) {
while(celt > 0) {
if (m_walk.is_empty()) return S_FALSE;
--celt; ++m_walk;
}
return S_OK;
}
HRESULT STDMETHODCALLTYPE Reset() {
m_walk = m_data.first();
return S_OK;
}
HRESULT STDMETHODCALLTYPE Clone(IEnumString **ppenum) {
*ppenum = new TImpl(*this); return S_OK;
}
private:
t_data m_data;
t_data::const_iterator m_walk;
};
class CACList_History : public CEnumString {
public:
CACList_History(cfg_dropdown_history_mt * var) : m_var(var) {Reset();}
typedef ImplementCOMRefCounter TImpl;
HRESULT STDMETHODCALLTYPE Reset() {
/*if (core_api::assert_main_thread())*/ {
ResetStrings();
pfc::string8 state; m_var->get_state(state);
for(const char * walk = state;;) {
const char * next = strchr(walk cfg_dropdown_history_mt::separator);
t_size len = (next != NULL) ? next - walk : ~0;
AddStringU(walk len);
if (next == NULL) break;
walk = next + 1;
}
}
return __super::Reset();
}
HRESULT STDMETHODCALLTYPE Clone(IEnumString **ppenum) {
*ppenum = new T
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 25416 2017-10-09 13:59 sdk-readme.css
文件 44890 2018-01-11 11:12 sdk-readme.html
目录 0 2018-03-06 15:59 foobar2000\
目录 0 2018-03-06 15:59 foobar2000\ATLHelpers\
文件 463 2018-01-04 12:47 foobar2000\ATLHelpers\ATLHelpers.h
文件 291 2017-10-09 13:59 foobar2000\ATLHelpers\ATLHelpersLean.h
文件 5968 2017-10-09 13:59 foobar2000\ATLHelpers\AutoComplete.cpp
文件 839 2017-10-09 13:59 foobar2000\ATLHelpers\AutoComplete.h
文件 2444 2017-12-04 11:45 foobar2000\ATLHelpers\BumpableElem.h
文件 5712 2018-02-05 10:00 foobar2000\ATLHelpers\CButtonLite.h
文件 4885 2017-10-09 13:59 foobar2000\ATLHelpers\CDialogResizeHelper.cpp
文件 2288 2017-10-09 13:59 foobar2000\ATLHelpers\CDialogResizeHelper.h
文件 142 2017-10-09 13:59 foobar2000\ATLHelpers\CEditWithButtons.cpp
文件 9524 2018-02-05 10:01 foobar2000\ATLHelpers\CEditWithButtons.h
文件 1542 2017-10-09 13:59 foobar2000\ATLHelpers\CFlashWindow.h
文件 1313 2017-11-22 07:02 foobar2000\ATLHelpers\CIconOverlayWindow.h
文件 8905 2017-12-04 11:41 foobar2000\ATLHelpers\CMiddleDragImpl.h
文件 3881 2017-10-09 13:59 foobar2000\ATLHelpers\Controls.h
文件 6589 2018-03-06 16:00 foobar2000\ATLHelpers\foobar2000_ATL_helpers.vcxproj
文件 3528 2018-02-22 15:39 foobar2000\ATLHelpers\foobar2000_ATL_helpers.vcxproj.filters
文件 6439 2017-11-22 10:33 foobar2000\ATLHelpers\GDIUtils.h
文件 13797 2018-01-03 15:00 foobar2000\ATLHelpers\inplace_edit.cpp
文件 4663 2017-10-09 13:59 foobar2000\ATLHelpers\inplace_edit.h
文件 5106 2017-10-09 13:59 foobar2000\ATLHelpers\inplace_edit_v2.cpp
文件 2581 2017-10-09 13:59 foobar2000\ATLHelpers\inplace_edit_v2.h
文件 3316 2017-10-09 13:59 foobar2000\ATLHelpers\misc.cpp
文件 14916 2018-01-04 08:35 foobar2000\ATLHelpers\misc.h
文件 309 2017-10-09 13:59 foobar2000\ATLHelpers\stdafx.cpp
文件 503 2017-10-09 13:59 foobar2000\ATLHelpers\stdafx.h
文件 11900 2018-02-23 11:12 foobar2000\ATLHelpers\ui_element_helpers.cpp
文件 16882 2018-02-23 11:12 foobar2000\ATLHelpers\ui_element_helpers.h
............此处省略375个文件信息
评论
共有 条评论