zoukankan      html  css  js  c++  java
  • SkylineGlobe MFC C++ 开发示例代码

    SkylineGlobe的SDK底层是跨平台的C++内核,面向不同平台封装原生的API,具有很高的执行效率,

    下面是C++二次开发时的示例代码:

    #import "D:Program Files (x86)SkylineTerraExplorer ProTerraExplorerX.dll" no_namespace, named_guids
    
    void OnLoadFinished();
        void OnFileClosing();
        void OnFrame();
        void OnRButtonDown(long Flags, int X, int Y, VARIANTARG *pbHandled);
    	
    	ITerraExplorer51Ptr m_spTE;
        DWORD m_dwCookie;
    
    // SAMPLE CODE: Implementation for the dispatch and interface maps
    BEGIN_DISPATCH_MAP(CMFCEmbeddedTEDlg, CCmdTarget)
        DISP_FUNCTION_ID(CMFCEmbeddedTEDlg, "OnLoadFinished", 1,OnLoadFinished, VT_EMPTY, VTS_NONE)
        DISP_FUNCTION_ID(CMFCEmbeddedTEDlg, "OnFileClosing", 2,OnFileClosing, VT_EMPTY, VTS_NONE)
        DISP_FUNCTION_ID(CMFCEmbeddedTEDlg, "OnFrame", 3,OnFrame, VT_EMPTY, VTS_NONE)
        DISP_FUNCTION_ID(CMFCEmbeddedTEDlg, "OnRButtonDown", 13,OnRButtonDown, VT_EMPTY, VTS_I4 VTS_I4 VTS_I4 VTS_PVARIANT)
    END_DISPATCH_MAP()
    
    BEGIN_INTERFACE_MAP(CMFCEmbeddedTEDlg, CCmdTarget)
        INTERFACE_PART(CMFCEmbeddedTEDlg, __uuidof(_ITerraExplorerEvents5), Dispatch)
    END_INTERFACE_MAP()
    
    // TODO: Add extra initialization here
    	
        m_dwCookie = 0;
    		
    	// Create TerraExplorer COM object
    	HRESULT hr = m_spTE.CreateInstance(CLSID_TerraExplorer);
    	if (SUCCEEDED(hr))
    	{	
        	// Register an event handler for TerraExplorer events
    	    BOOL bAdvised = AfxConnectionAdvise(m_spTE,                                             
    	                                        __uuidof(_ITerraExplorerEvents5), 
    	                                        GetInterface(&IID_IUnknown), 
    	                                        TRUE, &m_dwCookie);
    	    ASSERT(bAdvised);
        }
    
    // SAMPLE CODE: Add OnDestroy handler and disconnect m_TerraExplorerEvents from the TerraExplorer object
    void CMFCEmbeddedTEDlg::OnDestroy()
    {
        // Must disconnect the event handler before the destruction of the dialog window and the TerraExplorer object.   
        if (m_dwCookie)
        {
            BOOL bUnadvised = AfxConnectionUnadvise(m_spTE, __uuidof(_ITerraExplorerEvents5),
                                                    GetInterface(&IID_IUnknown),
                                                    TRUE, m_dwCookie);
    
            TRACE("Unadvise for ITerraExplorerEvents5 %s
    ", bUnadvised ? "succeeded" : "failed");
            m_dwCookie = 0;
        }
    
        m_spTE = NULL;
    
        CDialog::OnDestroy();
    
        // TODO: Add your message handler code here
    }
    
    void CMFCEmbeddedTEDlg::OnBnClickedLoadFly()
    {    
        m_spTE->Load(_T("C:\Users\Administrator\Desktop\tempsh.FLY"));
    }
    
  • 相关阅读:
    Dockerfile构建镜像
    00基础复习
    docker的网络(基础)
    02-Mysql中的运算符
    01-mysql中的数据类型
    Docker客户端连接Docker Daemon的方式
    docker-ce快速部署
    ubuntu18.04 server配置静态ip
    html语义化小记录
    webpack导入es6的简单应用
  • 原文地址:https://www.cnblogs.com/yitianhe/p/5194384.html
Copyright © 2011-2022 走看看