本文整理汇总了C++中service_ptr_t::release方法的典型用法代码示例。如果您正苦于以下问题:C++ service_ptr_t::release方法的具体用法?C++ service_ptr_t::release怎么用?C++ service_ptr_t::release使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类service_ptr_t
的用法示例。
在下文中一共展示了service_ptr_t::release方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: retag_commit
void retag_commit(abort_callback &p_abort)
{
m_file.release();
filesystem::g_open(m_file, filename, filesystem::open_mode_write_new, p_abort);
this->p_abort = &p_abort;
ByteWriter bw = { this, static_write };
if (!ASAPWriter_Write(filename, bw, ASAP_GetInfo(asap), module, module_len, FALSE))
throw exception_io_unsupported_format();
}
示例2: refresh_all_playlist_views
void refresh_all_playlist_views()
{
if (playlist_view::g_get_cache().is_active())
{
g_to_global.release();
g_to_global_colour.release();
playlist_view::g_reset_columns();
unsigned m, pcount = playlist_view::list_playlist.get_count();
for (m = 0; m < pcount; m++)
{
playlist_view * p_playlist = playlist_view::list_playlist.get_item(m);
p_playlist->create_header();
if (p_playlist->wnd_header)
p_playlist->move_header();
}
playlist_view::update_all_windows();
}
}
示例3: retag_commit
void retag_commit(abort_callback &p_abort)
{
byte out_module[ASAP_MODULE_MAX];
int out_len = ASAP_SetModuleInfo(&module_info, module, module_len, out_module);
if (out_len <= 0)
throw exception_io_unsupported_format();
m_file.release();
filesystem::g_open(m_file, filename, filesystem::open_mode_write_new, p_abort);
m_file->write(out_module, out_len, p_abort);
}
示例4: disable
void spectrum_extension::disable()
{
b_active = false;
list_vis.remove_item(this);
static_api_ptr_t<play_callback_manager>()->unregister_callback(this);
if (static_api_ptr_t<play_control>()->is_playing())
g_deregister_stream(this);
if (!list_vis.get_count())
g_stream.release();
p_host.release();
}
示例5: make_menu
void menu_extension::make_menu(unsigned idx)
{
if (idx == actual_active || hooked || idx < 1 || idx > m_buttons.get_count()) return;
service_ptr_t<menu_extension> dummy = this; //menu command may delete us
actual_active = idx;
RECT rc;
POINT pt;
SendMessage(wnd_menu, TB_GETRECT, idx, (LPARAM)&rc);
MapWindowPoints(wnd_menu, HWND_DESKTOP, (LPPOINT)&rc, 2);
pt.x = rc.left;
pt.y = rc.bottom;
HMENU menu = CreatePopupMenu();
hooked = true;
// p_hooked_menu = this;
message_hook_manager::register_hook(message_hook_manager::type_message_filter, this);
//msghook = uSetWindowsHookEx(WH_MSGFILTER, menu_hook_t_proc, 0, GetCurrentThreadId());
service_ptr_t<mainmenu_manager> p_menu = standard_api_create_t<mainmenu_manager>();
bool b_keyb = standard_config_objects::query_show_keyboard_shortcuts_in_menus();
if (p_menu.is_valid())
{
p_menu->instantiate(m_buttons[idx-1].m_guid);
p_menu->generate_menu_win32(menu,1,-1,b_keyb ? mainmenu_manager::flag_show_shortcuts : 0);
menu_helpers::win32_auto_mnemonics(menu);
}
SendMessage(wnd_menu, TB_PRESSBUTTON, idx, TRUE);
SendMessage(wnd_menu, TB_SETHOTITEM, idx-1, 0);
is_submenu = false;
sub_menu_ref_count = -1; //we get a notificationwhen the inital menu is created
// RECT rc_desktop;
// if (GetWindowRect(GetDesktopWindow(), &rc_desktop))
// if (pt.x < rc_desktop.left) pt.x = rc_desktop.left;
// else if (pt.x > rc_desktop.right) pt.x = rc_desktop.right;
p_manager = p_menu;
TPMPARAMS tpmp;
memset(&tpmp, 0, sizeof(TPMPARAMS));
tpmp.cbSize = sizeof(tpmp);
GetWindowRect(wnd_menu, &tpmp.rcExclude);
HMONITOR mon = MonitorFromPoint(pt, MONITOR_DEFAULTTONEAREST);
if (mon)
{
MONITORINFO mi;
memset(&mi, 0, sizeof(MONITORINFO));
mi.cbSize = sizeof(MONITORINFO);
if (uGetMonitorInfo(mon, &mi))
{
if (pt.x < mi.rcMonitor.left) pt.x = mi.rcMonitor.left;
tpmp.rcExclude.left = mi.rcMonitor.left;
tpmp.rcExclude.right = mi.rcMonitor.right;
}
}
// menu_info::MENU_A_BASE = 1;
// menu_info::MENU_B_BASE = -1;
if (GetFocus() != wnd_menu)
wnd_prev_focus = GetFocus();
int cmd = TrackPopupMenuEx(menu,TPM_LEFTBUTTON|TPM_RETURNCMD,pt.x,pt.y,get_wnd(),&tpmp);
// int cmd = TrackPopupMenuEx(menu,TPM_LEFTBUTTON|TPM_RETURNCMD,pt.x,pt.y,g_main_window,0);
m_status_override.release();
//SendMessage(wnd_menu, TB_PRESSBUTTON, idx, FALSE);
PostMessage(wnd_menu, TB_PRESSBUTTON, idx, FALSE);
if (GetFocus() != wnd_menu)
{
PostMessage(wnd_menu, TB_SETHOTITEM, -1, 0);
}
DestroyMenu(menu);
if (cmd>0 && p_menu.is_valid())
{
// SendMessage(wnd_menu, TB_SETHOTITEM, -1, 0);
if (IsWindow(wnd_prev_focus))
SetFocus(wnd_prev_focus);
p_menu->execute_command(cmd - 1);
//.........这里部分代码省略.........
示例6: on_message
//.........这里部分代码省略.........
}
case MSG_HIDE_MENUACC:
{
//if (is_win2k_or_newer())
{
BOOL a = true;
SystemParametersInfo(SPI_GETKEYBOARDCUES, 0, &a, 0);
if ((SendMessage(wnd_menu, WM_QUERYUISTATE, 0, 0) & UISF_HIDEACCEL) != !a)
SendMessage(wnd_menu, WM_UPDATEUISTATE, MAKEWPARAM(a ? UIS_CLEAR : UIS_SET, UISF_HIDEACCEL), 0);
}
break;
}
case MSG_SHOW_MENUACC:
{
//if (is_win2k_or_newer())
{
SendMessage(wnd_menu, WM_UPDATEUISTATE, MAKEWPARAM(UIS_CLEAR, UISF_HIDEACCEL), 0);
}
break;
}
case MSG_CREATE_MENU:
{
if (lp) SetFocus(wnd_menu);
active_item = wp;
make_menu(wp);
break;
}
case WM_MENUSELECT:
{
if (HIWORD(wp) & MF_POPUP)
{
is_submenu = true;
m_status_override.release();
}
else
{
is_submenu = false;
if (p_manager.is_valid())
{
unsigned id = LOWORD(wp);
bool set = false;
pfc::string8 blah;
set = p_manager->get_description(id - 1, blah);
service_ptr_t<ui_status_text_override> p_status_override;
if (set)
{
get_host()->override_status_text_create(p_status_override);
if (p_status_override.is_valid())
{
p_status_override->override_text(blah);
}
}
m_status_override = p_status_override;
}
}
break;
}
case WM_INITMENUPOPUP:
{