关于delphi6连接word2000的问题?(50分)

  • 主题发起人 主题发起人 cdkey
  • 开始时间 开始时间
C

cdkey

Unregistered / Unconfirmed
GUEST, unregistred user!
在程序中有一段
onbutton1clicked
......
word2000=creatoleobject(word.application);
......
编译正常通过。
在有些机器上执行也正常。
但在有些机器下按第一次时提示“呼叫请求被对方拒绝”,按第二次就正常了,这是怎么会事?
 
我怎么没有碰到过这个问题啊.
 
这些机器是不是同时装了97和2000.
 
我也想知道delphi如何操作word啊,就是把几段文字,从word按公文格式输出(第N行标题,

第N行正文,第N行落款)
 
Getting data from Word(come from softmosis)
uses Word_TLB;
function GetRTFFormat(DataObject: IDataObject; var RTFFormat: TFormatEtc): Boolean;
var
Formats: IEnumFORMATETC;
TempFormat: TFormatEtc;
cfRTF: LongWord;
Found: Boolean;
begin
try
OleCheck(DataObject.EnumFormatEtc(DATADIR_GET, Formats));
cfRTF := RegisterClipboardFormat('Rich Text Format');
Found := False;
while (not Found) and (Formats.Next(1, TempFormat, nil) = S_OK) do
if (TempFormat.cfFormat = cfRTF) then begin
RTFFormat := TempFormat;
Found := True;
end;
Result := Found;
except
Result := False;
end;
end;

procedure GetRTF(WordDoc: _Document);
var
DataObject: IDataObject;
RTFFormat: TFormatEtc;
ReturnData: TStgMedium;
Buffer: PChar;
begin
if (Assigned(WordDoc)) then try
WordDoc.QueryInterface(IDataObject, DataObject);
if GetRTFFormat(DataObject, RTFFormat) then begin
OleCheck(DataObject.GetData(RTFFormat, ReturnData));
//RTF is passed through global memory
Buffer := GlobalLock(ReturnData.hglobal);

//Buffer is a pointer to the RTF text
//Insert code here to handle the RTF text (ie. save it, display it etc.)

GlobalUnlock(ReturnData.hglobal);
end;
except
ShowMessage('Error while getting RTF');
end;
end;

 
CDKey,老兄。。
迷侠的答案接受了吗?
该给分了吧?:)
 
我装的是office2000,有谁知道这个问题吗?
 
后退
顶部