構文
BOOL GetImage(DOUBLE * pdXSize, DOUBLE * pdYSize, DOUBLE * pdAngle,
INT * pnTransparent, DOUBLE * pdFrameWidth,
OLE_COLOR * pcrFrameColor1, OLE_COLOR * pcrFrameColor2,
DOUBLE * pdXPos, DOUBLE * pdYPos);
(JavaScript用) string GetImageJS();
// 間取りオブジェクトへ接続
CMadoriDoc * m_MadoriDoc = new CMadoriDoc();
CLSIDFromProgID (L"MyHomeDesignerMadori.MadoriDoc", &clsid);
GetActiveObject (clsid, NULL, &pUnk);
pUnk->QueryInterface (IID_IDispatch, (void**)(&pDisp));
m_MadoriDoc->AttachDispatch (pDisp);
// 列挙する
long lRet = m_MadoriDoc->GetTopObject();
if (lRet == 0) AfxMessageBox(_T("何もない"));
while (lRet) {
ULONG uType = m_MadoriDoc->GetCurrentObjectType();
short nLayer = m_MadoriDoc->GetCurrentObjectLayer();
CString strMsg;
strMsg.Format(_T("[%X]type[%d]layer[%d]"), lRet, uType, nLayer);
AfxMessageBox(strMsg);
switch (uType) {
case 70:
DOUBLE dXPos = 0.0;
DOUBLE dYPos = 0.0;
DOUBLE dAngle = 0.0;
DOUBLE dXSize = 0.0;
DOUBLE dYSize = 0.0;
INT nTransparent = 0;
DOUBLE dFrameWidth = 0.0;
OLE_COLOR crFrameColor1 = 0;
OLE_COLOR crFrameColor2 = 0;
BOOL bRet = m_MadoriDoc->GetImage(
&dXPos,
&dYPos,
&dAngle,
&dXSize,
&dYSize,
(long *)&nTransparent,
&dFrameWidth,
&crFrameColor1,
&crFrameColor2);
strMsg.Format(_T("Image XPos[%lf]YPos[%lf]Angle[%lf]")
_T("XSize[%lf]YSize[%lf]Transparent[%d]")
_T("FrameWidth[%lf]FrameColor1[%lu]FrameColor2[%lu]"),
dXPos, dYPos, dAngle, dXSize, dYSize,
nTransparent, dFrameWidth, crFrameColor1, crFrameColor2);
AfxMessageBox(strMsg);
break;
}
}
// JavaScript sample
var doc = new CMadoriDoc();
var lRet = doc.GetTopObject();
while (lRet) {
var uType = doc.GetCurrentObjectType();
alert(uType);
switch (uType) {
case 70: // 画像
doc.Select();
var data = eval(doc.GetImageJS());
alert("Result[" + data.Result + "]");
var msg = " XSize[" + data.XSize + "]\r\n";
msg += " YSize[" + data.YSize + "]\r\n";
msg += " Angle[" + data.Angle + "]\r\n";
msg += " Transparent[" + data.Transparent + "]\r\n";
msg += " FrameWidth[" + data.FrameWidth + "]\r\n";
msg += " FrameColor1[" + data.FrameColor1 + "]\r\n";
msg += " FrameColor2[" + data.FrameColor2 + "]\r\n";
msg += " XPos[" + data.XPos + "]\r\n";
msg += " YPos[" + data.YPos + "]\r\n";
alert(msg);
doc.Unselect();
break;
}
lRet = doc.GetNextObject();
}