構文
void GetGuide(BOOL bHorizontal, VARIANT * vPos);
(JavaScript用) string GetGuideJS();
ガイド線の位置を取得します。
パラメータ
bHorizontal
水平ガイド線かどうか。0で垂直ガイド線、1で水平ガイド線。
vPos
ガイド線の位置の列。型は VT_R8 | VT_ARRAY にしてください。vVertex.parrayは不要になったら、SafeArrayDestroyで解放してください。
使用例
// 間取りオブジェクトへ接続
CMadoriDoc * m_MadoriDoc = new CMadoriDoc();
CLSIDFromProgID (L"MyHomeDesignerMadori.MadoriDoc", &clsid);
GetActiveObject (clsid, NULL, &pUnk);
pUnk->QueryInterface (IID_IDispatch, (void**)(&pDisp));
m_MadoriDoc->AttachDispatch (pDisp);
VARIANT vPos;
vPos.vt = VT_R8 | VT_ARRAY;
vPos.parray = NULL;
m_MadoriDoc->GetGuide(1, &vPos);
ULONG uCount = 0;
if(vPos.parray){
uCount = vPos.parray->rgsabound[0].cElements;
}
CString strMsg;
strMsg.Format(TEXT("ガイド線 [%d]"), uCount);
AfxMessageBox(strMsg);
if(uCount > 0){
double * pVar;
SafeArrayAccessData(vPos.parray, (void**)&pVar);
for(ULONG u = 0; u < uCount; ++u){
strMsg.Format(TEXT("%u[%lf]"), u, pVar[u]);
AfxMessageBox(strMsg);
}
SafeArrayUnaccessData(vPos.parray);
}
if(vPos.parray) SafeArrayDestroy(vPos.parray);
// JavaScript sample
var doc = new CMadoriDoc();
var data = eval( doc.GetGuideJS( false ) );
var msg = " Result[" + data.Result + "]\r\n";
alert(msg);
alert( data.Vertex.length );
for( var i=0 ; i < data.Vertex.length ; i++ ){
alert( "Vertex:[" + data.Vertex[i] + "]" );
}