M_RESULT SnarlInterface::RegisterApp(LPCWSTR Application, LPCWSTR SmallIcon, LPCWSTR LargeIcon, HWND hWnd, LONG32 ReplyMsg)
{
	LPSTR szParam1 = WideToUTF8(Application);
	LPSTR szParam2 = WideToUTF8(SmallIcon);
	LPSTR szParam3 = WideToUTF8(LargeIcon);
	
	M_RESULT result = RegisterApp(szParam1, szParam2, szParam3, hWnd, ReplyMsg);
	
	delete [] szParam1;
	delete [] szParam2;
	delete [] szParam3;
	
	return result;
}
Example #2
0
int main(int argc, char* argv[])
{
	HANDLE				hDevice = NULL;
	
	APP_REGISTRATION	AppReg;
	
	HANDLE				hWhistleup = NULL;
	HANDLE				hWFChanged = NULL;
	
	char				WhistleupName[MAX_PATH]; 
	char				WFChangedName[MAX_PATH]; 
	
	IDriver_ReloadSettings(0);
	
	
	OSVERSIONINFO		OSVer;
	
	AppReg.m_AppID = AVPG_Debug;
	wsprintf(WhistleupName, "MSDEVPassWhistleup", AppReg.m_AppID);
	wsprintf(WFChangedName, "MSDEVPassChanged", AppReg.m_AppID);
	
	AppReg.m_Priority = AVPG_INVISIBLEPRIORITY;
	AppReg.m_CurProcId = GetCurrentProcessId();
	
	AppReg.m_ClientFlags = _CLIENT_FLAG_WITHOUTWATCHDOG;
	AppReg.m_BlueScreenTimeout = DEADLOCKWDOG_TIMEOUT;
	AppReg.m_LogFileName[0] = 0;

	OSVer.dwOSVersionInfoSize = sizeof(OSVer);
	GetVersionEx(&OSVer);
	
	hDevice = RegisterApp(&AppReg, &OSVer, &hWhistleup, &hWFChanged, WhistleupName, WFChangedName);
	if (hDevice == INVALID_HANDLE_VALUE)
	{
		DbgPrint(1, "Register Undebugger failed!\n");
	}
	else
	{
		AddInvisibleProcess(hDevice, AppReg.m_AppID, &OSVer, "MSDEV*");
		AddInvisibleProcess(hDevice, AppReg.m_AppID, &OSVer, "SSEXP*");
		AddInvisibleProcess(hDevice, AppReg.m_AppID, &OSVer, "RATIONAL.EXE");
		AddInvisibleProcess(hDevice, AppReg.m_AppID, &OSVer, "WINDBG*");
		AddInvisibleProcess(hDevice, AppReg.m_AppID, &OSVer, "DEVENV*");

		UnRegisterApp(hDevice, &AppReg, TRUE, &OSVer);
	}

	return 0;
}
Example #3
0
  void DirectoryServer::ProcessRegisterApp(INetPacket* thePacket)
  {
    // The application info structure to build
    typeAppInfo anAppInfo;

    // Retrieve the application ID from the RegisterApp message
    *thePacket >> anAppInfo.id;

    // Retrieve the title, description, and website
    *thePacket >> anAppInfo.title;
    *thePacket >> anAppInfo.description;
    *thePacket >> anAppInfo.website;

    // Now attempt to register this application
    RegisterApp(anAppInfo);
  }
Example #4
0
BOOL CPPageFormats::OnApply()
{
	UpdateData();

	{
		int i = m_list.GetSelectionMark();
		if (i >= 0) {
			i = (int)m_list.GetItemData(i);
		}
		if (i >= 0) {
			CMediaFormats& mf = AfxGetAppSettings().m_Formats;
			mf[i].SetExts(m_exts);
			m_exts = mf[i].GetExtsWithPeriod();
			UpdateData(FALSE);
		}
	}

	CMediaFormats& mf = AfxGetAppSettings().m_Formats;

	RegisterApp();

	f_setContextFiles = m_fContextFiles.GetCheck();
	f_setAssociatedWithIcon = m_fAssociatedWithIcons.GetCheck();

	if (m_bFileExtChanged) {
		for (int i = 0; i < m_list.GetItemCount(); i++) {
			int iChecked = GetChecked(i);
			if (iChecked == 2) {
				continue;
			}

			CAtlList<CString> exts;
			Explode(mf[(int)m_list.GetItemData(i)].GetExtsWithPeriod(), exts, ' ');

			POSITION pos = exts.GetHeadPosition();
			while (pos) {
				RegisterExt(exts.GetNext(pos), mf[(int)m_list.GetItemData(i)].GetDescription(), !!iChecked);
			}
		}
	}
	CRegKey key;
	if (m_fContextDir.GetCheck()) {
		if (ERROR_SUCCESS == key.Create(HKEY_CLASSES_ROOT, _T("Directory\\shell\\") PROGID _T(".enqueue"))) {
			key.SetStringValue(NULL, ResStr(IDS_ADD_TO_PLAYLIST));
		}

		if (ERROR_SUCCESS == key.Create(HKEY_CLASSES_ROOT, _T("Directory\\shell\\") PROGID _T(".enqueue\\command"))) {
			key.SetStringValue(NULL, GetEnqueueCommand());
		}

		if (ERROR_SUCCESS == key.Create(HKEY_CLASSES_ROOT, _T("Directory\\shell\\") PROGID _T(".play"))) {
			key.SetStringValue(NULL, ResStr(IDS_OPEN_WITH_MPC));
		}

		if (ERROR_SUCCESS == key.Create(HKEY_CLASSES_ROOT, _T("Directory\\shell\\") PROGID _T(".play\\command"))) {
			key.SetStringValue(NULL, GetOpenCommand());
		}
	} else {
		key.Attach(HKEY_CLASSES_ROOT);
		key.RecurseDeleteKey(_T("Directory\\shell\\") PROGID _T(".enqueue"));
		key.RecurseDeleteKey(_T("Directory\\shell\\") PROGID _T(".play"));
	}

	{
		SetListItemState(m_list.GetSelectionMark());
	}

	AddAutoPlayToRegistry(AP_VIDEO, !!m_apvideo.GetCheck());
	AddAutoPlayToRegistry(AP_MUSIC, !!m_apmusic.GetCheck());
	AddAutoPlayToRegistry(AP_AUDIOCD, !!m_apaudiocd.GetCheck());
	AddAutoPlayToRegistry(AP_DVDMOVIE, !!m_apdvd.GetCheck());

	AppSettings& s = AfxGetAppSettings();
	s.m_Formats.SetRtspHandler(m_iRtspHandler==0?RealMedia:m_iRtspHandler==1?QuickTime:DirectShow, !!m_fRtspFileExtFirst);
	s.fAssociatedWithIcons = !!m_fAssociatedWithIcons.GetCheck();

	SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, NULL, NULL);

	return __super::OnApply();
}
Example #5
0
//--------------------------------------------------------------------------
WindowsVideoDevice::WindowsVideoDevice() noexcept
{
	m_kName = "windows";
	m_kDesc = "Venus3D Windows Video Driver";
	VE_ASSERT_EQ(RegisterApp(nullptr, 0, nullptr), true);
}
Example #6
0
void CDAuditWizard::OnOK() 
{
	// TODO: Add extra validation here
	UpdateData(TRUE);

	APP_REGISTRATION tmpAppReg;
	
	char ProcName[MAX_PATH];
	char fo_mask[MAX_PATH];
	char ro_mask[MAX_PATH];
	HANDLE hDevice = NULL;
	HANDLE hWhistleup = NULL;
	HANDLE hWFChanged = NULL;
	char WhistleupName[MAX_PATH];
	char WFChangedName[MAX_PATH];

	tmpAppReg.m_CurProcId = GetCurrentProcessId();
	tmpAppReg.m_AppID = AVPG_Driver_Specific;
	tmpAppReg.m_Priority = AVPG_INFOPRIORITY;
	
	lstrcpy(tmpAppReg.m_LogFileName, m_eLogFilename);
	DbgPrint(1, "new log name %s", tmpAppReg.m_LogFileName);

	tmpAppReg.m_ClientFlags = _CLIENT_FLAG_NONE;
	tmpAppReg.m_BlueScreenTimeout = DEADLOCKWDOG_TIMEOUT;
	
	wsprintf(ProcName, "%s", m_ProcName);
	wsprintf(fo_mask, "%s", m_fo_mask);
	wsprintf(ro_mask, "%s", m_reg_mask);
	
	wsprintf(WhistleupName, "OASWhistleup%d_%d", tmpAppReg.m_AppID, GetCurrentThreadId());
	wsprintf(WFChangedName, "OADWFChanged%d_%d", tmpAppReg.m_AppID, GetCurrentThreadId());
	
	hDevice = RegisterApp(&tmpAppReg, &g_OSVer, &(hWhistleup), &(hWFChanged), WhistleupName, WFChangedName);
	if (hDevice == INVALID_HANDLE_VALUE)
	{
		DbgPrint(1, "FSDrvLib - init failed!\n");
		MessageBox("Sorry, but i can't init data for audit", "Error", MB_ICONINFORMATION);
	}
	else
	{
		switch (g_OSVer.dwPlatformId)
		{
		case VER_PLATFORM_WIN32_NT:

			// -----------------------------------------------------------------------------------------
			// file operations
			if (m_fo_create)	//open
			{
				AddFSFilter(hDevice, tmpAppReg.m_AppID, fo_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_NFIOR, IRP_MJ_CREATE, 0, 0, PreProcessing, NULL);
			}

			if (m_fo_write)		// write
			{
				AddFSFilter(hDevice, tmpAppReg.m_AppID, fo_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_NFIOR, IRP_MJ_WRITE, IRP_MN_NORMAL, 0, PreProcessing, NULL);
				AddFSFilter(hDevice, tmpAppReg.m_AppID, fo_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_FIOR, FastIoWrite, 0, 0, PreProcessing, NULL);
			}
			
			if (m_fo_close)		// close
			{
				AddFSFilter(hDevice, tmpAppReg.m_AppID, fo_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_NFIOR, IRP_MJ_CLEANUP, 0, 0, PreProcessing, NULL);
			}

			if (m_fo_read)		// read
			{
				AddFSFilter(hDevice, tmpAppReg.m_AppID, fo_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_NFIOR, IRP_MJ_READ, IRP_MN_NORMAL, 0, PreProcessing, NULL);
				AddFSFilter(hDevice, tmpAppReg.m_AppID, fo_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_FIOR, FastIoRead, 0, 0, PreProcessing, NULL);
			}
			break;
		default:
			if (m_fo_create)	//open
			{
				AddFSFilter(hDevice, tmpAppReg.m_AppID, fo_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_IFS, IFSFN_OPEN, 0, 0, PreProcessing, NULL);
				AddFSFilter(hDevice, tmpAppReg.m_AppID, fo_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_IFS, IFSFN_OPEN, 1, 0, PreProcessing, NULL);
				AddFSFilter(hDevice, tmpAppReg.m_AppID, fo_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_IFS, IFSFN_OPEN, 2, 0, PreProcessing, NULL);
				AddFSFilter(hDevice, tmpAppReg.m_AppID, fo_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_IFS, IFSFN_OPEN, 3, 0, PreProcessing, NULL);

				AddFSFilter(hDevice, tmpAppReg.m_AppID, fo_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_I21, 0x0f, 0, 0, PreProcessing, NULL);
				AddFSFilter(hDevice, tmpAppReg.m_AppID, fo_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_I21, 0x16, 0, 0, PreProcessing, NULL);
				AddFSFilter(hDevice, tmpAppReg.m_AppID, fo_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_I21, 0x3c, 0, 0, PreProcessing, NULL);
				AddFSFilter(hDevice, tmpAppReg.m_AppID, fo_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_I21, 0x3d, 0, 0, PreProcessing, NULL);
				AddFSFilter(hDevice, tmpAppReg.m_AppID, fo_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_I21, 0x5a, 0, 0, PreProcessing, NULL);
				AddFSFilter(hDevice, tmpAppReg.m_AppID, fo_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_I21, 0x5b, 0, 0, PreProcessing, NULL);
				AddFSFilter(hDevice, tmpAppReg.m_AppID, fo_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_I21, 0x6c, 0, 0, PreProcessing, NULL);
				AddFSFilter(hDevice, tmpAppReg.m_AppID, fo_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_I21, 0x71, 0, 0, PreProcessing, NULL);
			}
			if (m_fo_write)		// write
			{
				AddFSFilter(hDevice, tmpAppReg.m_AppID, fo_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_IFS, IFSFN_WRITE, 0, 0, PreProcessing, NULL);
				AddFSFilter(hDevice, tmpAppReg.m_AppID, fo_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_I21, 0x40, 0, 0, PreProcessing, NULL);
				AddFSFilter(hDevice, tmpAppReg.m_AppID, fo_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_I21, 0x28, 0, 0, PreProcessing, NULL);
				AddFSFilter(hDevice, tmpAppReg.m_AppID, fo_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_I21, 0x22, 0, 0, PreProcessing, NULL);
				AddFSFilter(hDevice, tmpAppReg.m_AppID, fo_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_I21, 0x15, 0, 0, PreProcessing, NULL);
			}
			
			if (m_fo_close)		// close
			{
				AddFSFilter(hDevice, tmpAppReg.m_AppID, fo_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_IFS, IFSFN_CLOSE, 2, 0, PreProcessing, NULL);
				AddFSFilter(hDevice, tmpAppReg.m_AppID, fo_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_I21, 0x10, 0, 0, PreProcessing, NULL);
				AddFSFilter(hDevice, tmpAppReg.m_AppID, fo_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_I21, 0x3e, 0, 0, PreProcessing, NULL);
			}

			if (m_fo_read)		// read
			{
				AddFSFilter(hDevice, tmpAppReg.m_AppID, fo_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_IFS, IFSFN_READ, 0, 0, PreProcessing, NULL);
				AddFSFilter(hDevice, tmpAppReg.m_AppID, fo_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_I21, 0x3f, 0, 0, PreProcessing, NULL);
				AddFSFilter(hDevice, tmpAppReg.m_AppID, fo_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_I21, 0x21, 0, 0, PreProcessing, NULL);
				AddFSFilter(hDevice, tmpAppReg.m_AppID, fo_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_I21, 0x27, 0, 0, PreProcessing, NULL);
			}
			break;
		}
		// -----------------------------------------------------------------------------------------
		// regestry

		if (m_reg_create)
		{
			AddFSFilter(hDevice, tmpAppReg.m_AppID, ro_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_REGS, CreateKey, 0, 0, PreProcessing, NULL);
		}
		if (m_reg_open)
		{
			AddFSFilter(hDevice, tmpAppReg.m_AppID, ro_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_REGS, OpenKey, 0, 0, PreProcessing, NULL);
			AddFSFilter(hDevice, tmpAppReg.m_AppID, ro_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_REGS, QueryKey, 0, 0, PreProcessing, NULL);
		}
		if (m_reg_query)
		{
			AddFSFilter(hDevice, tmpAppReg.m_AppID, ro_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_REGS, QueryMultipleValueKey, 0, 0, PreProcessing, NULL);
			AddFSFilter(hDevice, tmpAppReg.m_AppID, ro_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_REGS, QueryValueKey, 0, 0, PreProcessing, NULL);
		}
		if (m_reg_setval)
		{
			AddFSFilter(hDevice, tmpAppReg.m_AppID, ro_mask, ProcName, 1, FLT_A_LOG, FLTTYPE_REGS, SetValueKey, 0, 0, PreProcessing, NULL);
		}


		APPSTATE_REQUEST AppRequest;
		APPSTATE AppState;

		AppRequest = _AS_GoActive;
		IDriverState(hDevice, tmpAppReg.m_AppID, AppRequest, &AppState);

		UnRegisterApp(hDevice, &tmpAppReg, TRUE, &g_OSVer);
		CloseHandle(hDevice);
	}

	CDialog::OnOK();
}