GetGuide メソッド

構文

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] + "]" );
}