SkylineGlobe MFC C++ 开发示例代码

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

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

#import "D:\Program Files (x86)\Skyline\TerraExplorer Pro\TerraExplorerX.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\n", 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"));
}

 

转载于:https://www.cnblogs.com/yitianhe/p/5194384.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值