您的位置:首页 > 编程语言 > C语言/C++

SkylineGlobe MFC C++ 开发示例代码

2016-02-17 09:45 393 查看
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"));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: