ArcEngine中对relationship的图层编辑时,得初始化license。不然源图层的元素删除不掉。
CoInitialize(NULL);
{
CComPtr<IAoInitialize> pAoInitialzie;
esriLicenseStatus Status;
HRESULT hr;
//IAoInitializePtr ipInit(CLSID_AoInitialize);
hr=pAoInitialzie.CoCreateInstance(CLSID_AoInitialize);
// 如果不具有读写许可则,使用只读许可
pAoInitialzie->IsProductCodeAvailable(esriLicenseProductCodeEngineGeoDB,&Status);
if(Status == esriLicenseAvailable)
{
hr=pAoInitialzie->Initialize(esriLicenseProductCodeEngineGeoDB,&Status);
}
else
{
pAoInitialzie->IsProductCodeAvailable(esriLicenseProductCodeEngine,&Status);
if(Status == esriLicenseAvailable)
{
hr=pAoInitialzie->Initialize(esriLicenseProductCodeEngine,&Status);
}
}
if(Status != esriLicenseCheckedOut)
{
// AfxMessageBox("本机没有合适的ArcGIS授权,请与管理员联系!");
return FALSE;
}
}
CoInitialize(NULL);
{
CComPtr<IAoInitialize> pAoInitialzie;
esriLicenseStatus Status;
HRESULT hr;
//IAoInitializePtr ipInit(CLSID_AoInitialize);
hr=pAoInitialzie.CoCreateInstance(CLSID_AoInitialize);
// 如果不具有读写许可则,使用只读许可
pAoInitialzie->IsProductCodeAvailable(esriLicenseProductCodeEngineGeoDB,&Status);
if(Status == esriLicenseAvailable)
{
hr=pAoInitialzie->Initialize(esriLicenseProductCodeEngineGeoDB,&Status);
}
else
{
pAoInitialzie->IsProductCodeAvailable(esriLicenseProductCodeEngine,&Status);
if(Status == esriLicenseAvailable)
{
hr=pAoInitialzie->Initialize(esriLicenseProductCodeEngine,&Status);
}
}
if(Status != esriLicenseCheckedOut)
{
// AfxMessageBox("本机没有合适的ArcGIS授权,请与管理员联系!");
return FALSE;
}
}
本文介绍在ArcEngine中进行relationship图层编辑前初始化许可的过程。通过检查不同级别的许可状态,确保可以正确地对图层元素进行操作。
354

被折叠的 条评论
为什么被折叠?



