構文
BSTR GetCADLayerByID(UINT nID, UINT* pnParentID, BSTR* pstrName, BOOL* pbVisible, BOOL* pbEditable, BOOL* pbCurrent);
CADレイヤの情報を取得します。
(JavaScript用) string GetCADLayerByIDJS(var nID);
BSTR GetCADLayerByID(UINT nID, UINT* pnParentID, BSTR* pstrName, BOOL* pbVisible, BOOL* pbEditable, BOOL* pbCurrent);
CADレイヤの情報を取得します。
(JavaScript用) string GetCADLayerByIDJS(var nID);
// C++ sample
// 間取りオブジェクトへ接続
CMadoriDoc * m_MadoriDoc = new CMadoriDoc();
CLSIDFromProgID (L"MyHomeDesignerMadori.MadoriDoc", &clsid);
GetActiveObject (clsid, NULL, &pUnk);
pUnk->QueryInterface (IID_IDispatch, (void**)(&pDisp));
m_MadoriDoc->AttachDispatch (pDisp);
// 下絵読み込み
if(!m_MadoriDoc->CADDataOpen(L"C:\\Users\\Public\\Documents\\aaa.dxf", 1.0)){
// エラー
return;
}
// レイヤ数を確認
USHORT uNum = m_MadoriDoc->GetCADLayerNum();
for(USHORT u = 0; u < uNum; ++u){
UINT nLayerId = m_MadoriDoc->GetCADLayerID(u);
UINT nParentID;
BSTR szName;
BOOL bVisible;
BOOL bEditable;
BOOL bCurrent;
m_MadoriDoc->GetCADLayerByID(
nLayerId,
(unsigned long *)&nParentID,
&szName,
(long *)&bVisible,
(long *)&bEditable,
(long *)&bCurrent);
CString strName = NULL;
AfxBSTR2CString(&strName, szName);
CString strMsg;
strMsg.Format(_T("Layer\r\nLayerID[%u]\r\nParentID[%u]\r\nName[%s]\r\n
Visible[%d]\r\nEditable[%d]\r\nCurrent[%d]"),
nLayerId, nParentID, strName, bVisible, bEditable, bCurrent);
AfxMessageBox(strMsg);
if (szName) {
::SysFreeString(szName);
}
}
// JavaScript sample
var doc = new CMadoriDoc();
var num = doc.GetCADLayerNum();
alert(num);
var u;
for(u=0; u < num; ++u){
var layer = doc.GetCADLayerID(u);
var data = eval(doc.GetCADLayerByIDJS(layer));
alert("Result[" + data.Result + "]");
var msg = " ParentID[" + data.ParentID + "]\r\n";
msg += " Name[" + data.Name + "]\r\n";
msg += " Visible[" + data.Visible + "]\r\n";
msg += " Editable[" + data.Editable + "]\r\n";
msg += " Current[" + data.Current + "]\r\n";
alert(msg);
}