VC ++ MFC activex 控件获取连接的VPN 信息

vc++  MFC 进行activex  控件的开发步骤就不用多写了,只是简单的说明一下方法,以及具体的代码:

使用的类库是 windows 系统的 rasapi32.dll

记住需要添加的头文件如下:

#include <Windows.h>
#include <Ras.h>
#include <RasError.h>
#pragma comment(lib, "rasapi32.lib")

代码如下:

VARIANT_BOOL CsecurityControlCtrl::VPNApp(void)
{
    AFX_MANAGE_STATE(AfxGetStaticModuleState());

    // TODO: 在此添加调度处理程序代码

    DWORD dwCb = 0;
    DWORD dwRet = ERROR_SUCCESS;
    DWORD dwConnections = 0;
    LPRASCONN lpRasConn = NULL;
    // Call RasEnumConnections with lpRasConn = NULL. dwCb is returned with the required buffer size and
    // a return code of ERROR_BUFFER_TOO_SMALL
    dwRet = RasEnumConnectionsW(lpRasConn, &dwCb, &dwConnections);
    if (dwRet == ERROR_BUFFER_TOO_SMALL){
        // Allocate the memory needed for the array of RAS structure(s).
        lpRasConn = (LPRASCONN) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwCb);
        if (lpRasConn == NULL){

            return false;
        }
        // The first RASCONN structure in the array must contain the RASCONN structure size
        lpRasConn[0].dwSize = sizeof(RASCONN);

        // Call RasEnumConnections to enumerate active connections
        dwRet = RasEnumConnectionsW(lpRasConn, &dwCb, &dwConnections);

        // If successful, print the names of the active connections.
        if (ERROR_SUCCESS == dwRet){

            if(dwConnections>0)
            {
               return true;
            }
            else
            {
            return false;
            }
        }
        //Deallocate memory for the connection buffer
        HeapFree(GetProcessHeap(), 0, lpRasConn);
        lpRasConn = NULL;

    }
    return false;

}
时间: 2024-11-13 15:12:03

VC ++ MFC activex 控件获取连接的VPN 信息的相关文章

VC++使用ActiveX控件连接和操作数据库

VS2008运用ActiveX控件连接和操作数据库关闭时一直有个内存释放的错误,好像使用VC6.0会多生成2个文件,就不会有问题. VC++使用ActiveX控件连接和操作数据库的方法分两种: 1.通过属性窗口连接数据库2.通过代码连接数据库 1.通过属性窗口连接数据库基本步骤:(1)创建一个基于对话框的应用程序ActiveXDB; (2)添加CAdodc控件:对话框上右键单击,选择Insert ActiveX control菜单项,弹出的对话框中选择Microsoft ADO Data Con

VC/MFC ListCtrl 控件功能使用汇总(转)

以下未经说明,listctrl默认view 风格为report 相关类及处理函数 MFC:CListCtrl类 SDK:以 "ListView_"开头的一些宏.如 ListView_InsertColumn -------------------------------------------------------------------------------- 1. CListCtrl 风格      LVS_ICON: 为每个item显示大图标      LVS_SMALLIC

开发ActiveX控件调用另一个ActiveX系列1——开发一个MFC ActiveX控件

ActiveX开发的教程有很多,我也从中受益匪浅,例如以下这几篇: 基本教程:http://www.cnblogs.com/guenli/articles/1629915.html 注意事项:http://jon-lt.iteye.com/blog/1676272 属性.方法开发:http://blog.csdn.net/waxgourd0/article/details/7652478 但是由于我的目的是开发一个身份证识别仪的ActiveX控件,因此我就要先仿照识别仪ActiveX开发一个Ac

图解VC++开发ActiveX控件C#调用

1 新建ActiveX控件工程 2 编译,运行 使用下图所示VC++自带测试工具来测试ActiveX控件: 3 测试容器 插入刚做的ActiveXDemo1控件 4 添加属性 添加名为outstr的属性; 在控件的实现文件中加入黑体一句: void CActiveXDemo1Ctrl::OnDraw( CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid) { // TODO: Replace the following code

如何将 MFC ActiveX 控件标记为安全,脚本和初始化

MSDN原文.ActiveX控件标记安全(可以不仅仅是MFC ActiveX) 概要 默认情况下,MFC ActiveX 控件未标记为对脚本编写是安全的和对初始化是安全的.控制运行在 Internet Explorer 中使用的安全级别设置为中或高时,这一点很明显.在上述这些模式中,控件的数据是不安全或不可能安全脚本中使用该控件,可能会显示警告. 有两个控件可用于消除这些错误的方法.第一个涉及实现 IObjectSafety 接口的控件,并对于想要更改其行为变得"安全"的互联网浏览器的

VC++编写ActiveX控件

ActiveX这门技术是通过生成“*.ocx”文件来实现的.先来了解下OCX文件,在百度百科上面对OCX是这样解释的:“.ocx是ocx控件的扩展名,OCX 是对象类别扩充组件.如果你用过Visual Basic或者Delphi一类的可视化编程工具,那么对控件这个概念一定不会陌生,就是那些工具条上的小按钮,如 EditBox,Grid,ImageBox,Timer等等.每个控件都有自己的事件.方法和属性.使用了控件的编程非常容易.首先,在程序的设计阶段可以设置一些属性,如大小,位置,标题(cap

ActiveX控件(MFC篇)

目录 第1章 VC++6.0创建控件    1 1.1 目标    1 1.1.1 方法    1 1.1.2 属性    1 1.1.3 事件    1 1.2 创建项目    2 1.3 项目结构    6 1.3.1 COM接口    6 1.3.2 COM类    7 1.3.3 属性页    7 1.3.4 应用程序类    8 1.3.5 注册与注销    8 1.4 方法    9 1.4.1 增加    9 1.4.2 删除    11 1.5 属性    12 1.5.1 Te

基于MFC的ActiveX控件开发 (转)

ActiveX 控件是基于组件对象模型 (COM) 的可重用软件组件,广泛应用于桌面及Web应用中.在VC下ActiveX控件的开发可以分为三种,一种是直接用COM的API来开发,这样做显然非常的麻烦,对程序员要求也非常高,因此一般是不予考虑的:一种是基于传统的MFC,采用面向对象的方式将COM的基本功能封装在若干MFC的C++类中,开发者通过继承这些类得到COM支持功能.MFC为广大VC程序员所熟悉,易于上手学习,但缺点是MFC封装的东西比较多,因此用MFC开发出来的控件相对会比较大,因此比较

【转载】基于MFC的ActiveX控件开发(1)

原文:http://iysm.net/?p=114 ActiveX 控件是基于组件对象模型 (COM) 的可重用软件组件,广泛应用于桌面及Web应用中.在VC下ActiveX控件的开发可以分为三种,一种是直接用COM的API来开发,这样做显然非常的麻烦,对程序员要求也非常高,因此一般是不予考虑的:一种是基于传统的MFC,采用面向对象的方式将COM的基本功能封装在若干MFC的C++类中,开发者通过继承这些类得到COM支持功能.MFC为广大VC程序员所熟悉,易于上手学习,但缺点是MFC封装的东西比较