当前位置: 首页>>代码示例>>C++>>正文


C++ service_ptr_t::release方法代码示例

本文整理汇总了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();
	}
开发者ID:hudokkow,项目名称:audiodecoder.asap,代码行数:9,代码来源:foo_asap.cpp

示例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();
	}
}
开发者ID:ASopH,项目名称:columns_ui,代码行数:18,代码来源:playlist_view.cpp

示例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);
	}
开发者ID:070499,项目名称:xbmc,代码行数:10,代码来源:foo_asap.cpp

示例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();
}
开发者ID:ttsping,项目名称:columns_ui,代码行数:15,代码来源:vis_spectrum.cpp

示例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);
//.........这里部分代码省略.........
开发者ID:i7voodoo,项目名称:columns_ui,代码行数:101,代码来源:menubar.cpp

示例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:
		{
开发者ID:i7voodoo,项目名称:columns_ui,代码行数:67,代码来源:menubar.cpp


注:本文中的service_ptr_t::release方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。