⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 utils.cpp

📁 再贡献一份基于osip 协议栈的用户代理
💻 CPP
字号:
/******************************************************>
 * Copyright (c) 2001 Microsoft Corporation. 
 * All rights reserved.
 *
 * Copyright (c) 2005 enum.at
 * All rights reserved.
 *
 * @Abstract: Utils.cpp
 * ---------- [ Source Definition File]
 * 
 * @Description:
 * -------------
 * Utilities for logging Error Messages in the debugger  
 * or in a Popup message box
 *
 ******************************************************/


#include "Stdafx.h"
#include "Utils.h"


/**********************************************************
//@DBLOGGER
//
//@Description
//  
//  Spews text output to the debugger
//
//@Args In:
//
//  LPCTSTR str   -> Formatted String
//  
//
//@Args Out:    None
//
//
//*********************************************************/
extern "C" int DBLOGGER(TCHAR *str, ...) 
{
	
	_ASSERTE( str != NULL);
	
	TCHAR buffer[512] = {_T('\0')};

	va_list v;
	va_start(v,str);
	_tcscpy(buffer,_T("\n"));
	_vsntprintf(buffer,511,str,v);
	::OutputDebugString(buffer);

	va_end(v);
	return 1;
}


/**********************************************************
//@LOGMSGERROR
//
//@Description
//  
//  Reports an Error in a Message Box
//
//@Args In:
//
//  LPCTSTR str   ->  String
//  
//
//@Args Out:    None
//
//
//*********************************************************/
extern "C" void LOGMSGERROR(TCHAR *str, ...)
{

	_ASSERT(NULL != str);

	TCHAR buffer[512] = {_T('\0')};

	va_list v;
	va_start(v,str);
	_tcscpy(buffer,_T("\n"));
	_vsntprintf(buffer,511,str,v);

	MessageBox(NULL, buffer, _T("RTCOut Error"), MB_OK);

	va_end(v);
}



/**********************************************************
//@LOGMSG
//
//@Description
//  
//  Reports an Error in a Message Box
//
//@Args In:
//
//  LPCTSTR str   ->  String
//  
//
//@Args Out:    None
//
//
//*********************************************************/
extern "C" void LOGMSG(TCHAR *str, ...)
{

	_ASSERT(NULL != str);

	TCHAR buffer[512] = {_T('\0')};

	va_list v;
	va_start(v,str);
	_tcscpy(buffer,_T("\n"));
	_vsntprintf(buffer,511,str,v);

	MessageBox(NULL, buffer, _T("RTCOut Info"), MB_OK);

	va_end(v);
}


/////////////////////////////////////////////
//
// RegistryGet
//

HRESULT RegistryGet(WCHAR * szValueName, WCHAR * szData)
{
    HKEY hKey;
    LONG lResult;
    DWORD cbSize = MAX_STRING * sizeof(WCHAR);

    lResult = RegOpenKeyW(
        HKEY_CURRENT_USER,
        _T("Software\\enumat\\enumsoftphone"),
        &hKey);

    if (lResult != ERROR_SUCCESS)
    {
        // RegOpenKeyW failed
        return E_FAIL;
    }    

    lResult = RegQueryValueExW(
        hKey,
        szValueName,
        NULL,
        NULL,
        (LPBYTE)szData,
        &cbSize
        );

    RegCloseKey(hKey);

    if (lResult != ERROR_SUCCESS)
    {
        // RegQueryValueExW failed
        return E_FAIL;
    }

    return S_OK;
}

/////////////////////////////////////////////
//
// RegistrySet
//

HRESULT RegistrySet(WCHAR * szValueName, WCHAR * szData)
{
    HKEY hKey;
    LONG lResult;

    lResult = RegCreateKeyW(
        HKEY_CURRENT_USER,
        _T("Software\\enumat\\enumsoftphone"),
        &hKey);

    if (lResult != ERROR_SUCCESS)
    {
        // RegOpenKeyW failed
        return E_FAIL;
    }

    lResult = RegSetValueExW(
        hKey,
        szValueName,
        0,
        REG_SZ,
        (LPBYTE)szData,
        (DWORD) ((wcslen(szData) + 1) * sizeof(WCHAR))
        );

    RegCloseKey(hKey);

    if (lResult != ERROR_SUCCESS)
    {
        // RegSetValueExW failed
        return E_FAIL;
    }

    return S_OK;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -