zoukankan      html  css  js  c++  java
  • 通过代码动态注册OCX控件

     
    1.       在APP初始化中:
    if (FAILED(OleInitialize(NULL)))
       {
          AfxMessageBox("OLE initialization failed.Make sure that the OLE libraries are the correct version.") ;
          return FALSE ;
       }
    2.在需使用的对话框及程序开头处加入
    #ifdef _WIN32
    #define LOADLIBRARY_FAILED(x) (x == 0)
    #else
    #define LOADLIBRARY_FAILED(x) (x <= HINSTANCE_ERROR)
    #endif
     
    //定义函数地址
    STDAPI DllRegisterServer(void) ;
    STDAPI DllUnregisterServer(void) ;
    typedef HRESULT (STDAPICALLTYPE *CTLREGPROC)();
     
    3.       定义注册函数
    BOOL CNetMeetDlg::Register(CString strOcx)   //strOcx为需注册的OCX名称
    {
                  BOOL bResult = FALSE;
                  HMODULE hModule = ::LoadLibrary(strOcx) ;
                  if (LOADLIBRARY_FAILED(hModule)) return FALSE ;
          
                  //获得注册函数地址
                  CTLREGPROC DLLRegisterServer =
                (CTLREGPROC)::GetProcAddress(hModule,"DllRegisterServer" ) ;
                  if (DLLRegisterServer != NULL)
                  {
                         HRESULT regResult = DLLRegisterServer() ;
                         bResult = (regResult == NOERROR) ;
                  }
                  ::FreeLibrary(hModule) ;
            return bResult;
    }
     
    4.在需注册的地方加入Register(“name.OCX”);
     
  • 相关阅读:
    PAT 1010. 一元多项式求导 (25)
    PAT 1009. 说反话 (20) JAVA
    PAT 1009. 说反话 (20)
    PAT 1007. 素数对猜想 (20)
    POJ 2752 Seek the Name, Seek the Fame KMP
    POJ 2406 Power Strings KMP
    ZOJ3811 Untrusted Patrol
    Codeforces Round #265 (Div. 2) 题解
    Topcoder SRM632 DIV2 解题报告
    Topcoder SRM631 DIV2 解题报告
  • 原文地址:https://www.cnblogs.com/tyjsjl/p/2156083.html
Copyright © 2011-2022 走看看