Dso Framer1

1.void CreateNew(BSTR ProgIdOrTemplate)

  新建文档,

  其中: ProgIdOrTemplate参数:

Excel Spreadsheet     "Excel.Sheet"

Excel Chart        "Excel.Chart"

PowerPoint Presentation  "PowerPoint.Show"

Project Project      "MSProject.Project"

Visio Drawing       "Visio.Drawing"

Word Document       "Word.Document"

2.  HRESULT Open([in] VARIANT Document, [in, optional] VARIANT ReadOnly,

[in, optional] VARIANT ProgId, [in, optional] VARIANT WebUsername, [in, optional] VARIANT WebPassword)

    打开文档,可以是本地文件或者是服务器文件

参数:

Document  文档路径

ReadOnly  是否已只读模式打开

ProgId    OLE类型

WebUsername  用户名(访问网络的文件时候,有可能需要)

WebPassword  密码

例子:

DsoFramer1.Open "C:\TestBook.xls"

DsoFramer1.Open "C:\Plain.txt", , "Word.Document"  //Word来打开c:\plain.txt文件

DsoFramer1.Open "https://secureserver/test/mytest.asp?id=123", True, "Excel.Sheet", "MyUserAccount", "MyPassword"

3.HRESULT Save([in, optional] VARIANT SaveAsDocument, [in, optional] VARIANT OverwriteExisting,

                [in, optional] VARIANT WebUsername, [in, optional] VARIANT WebPassword);

保存文件在本地

DsoFramer1.Save "c:\1.doc"

4.Activate

激活当前文档,没搞明白有什么用

5.  HRESULT ActiveDocument([out,retval] IDispatch** ppdisp);

返回当前活动文档的Dispatch接口,这个接口很重要,可以通过这个接口,操作所有的文档接口。

如:下面 javascript 语句调用Office内置的对话框

var obj;

obj = new Object(document.all.FramerControl1.ActiveDocument);

if(obj !=null){

var dd;

dd = obj.Application.Dialogs(84).Show();

//... ...

//delete it

delete obj;

}

6.  HRESULT Close();

关闭当前文档,建议在页面关闭的时候调用。

MS的原来的版本,有时候关不掉Word,已经修复了。

7.  HRESULT Caption([out,retval] BSTR* pbstr);

属性,获取|设置窗口标题

8.  HRESULT Titlebar([in] boolean vbool);

   HRESULT Titlebar([out,retval] boolean* pbool);

   显示或者隐藏标题栏

9. HRESULT Toolbars([in] boolean vbool);

  HRESULT Toolbars([out,retval] boolean* pbool);

   显示或者隐藏工具栏

10.  HRESULT ModalState([in] boolean vbool);

   HRESULT ModalState([out,retval] boolean* pbool);

11.HRESULT ShowDialog([in] dsoShowDialogType DlgType);

  显示对话框

12.HRESULT EnableFileCommand([in] dsoFileCommandType Item, [in] boolean vbool);

  HRESULT EnableFileCommand([in] dsoFileCommandType Item, [out,retval] boolean* pbool);

13.  HRESULT BorderStyle([in] dsoBorderStyle style);

  HRESULT BorderStyle([out, retval] dsoBorderStyle* pstyle);

14.  HRESULT BorderColor([in] OLE_COLOR clr);

  HRESULT BorderColor([out,retval] OLE_COLOR* pclr);

15. HRESULT BackColor([in] OLE_COLOR clr);

  HRESULT BackColor([out,retval] OLE_COLOR* pclr);

16.HRESULT ForeColor([in]OLE_COLOR clr);

  HRESULT ForeColor([out,retval]OLE_COLOR* pclr);

17.HRESULT TitlebarColor([in] OLE_COLOR clr);

HRESULT TitlebarColor([out,retval] OLE_COLOR* pclr);

18.HRESULT TitlebarTextColor([in] OLE_COLOR clr);

   HRESULT TitlebarTextColor([out,retval] OLE_COLOR* pclr);

19.HRESULT ExecOleCommand([in] LONG OLECMDID, [in, optional] VARIANT Options, [in, optional] VARIANT* vInParam, [in, out, optional] VARIANT* vInOutParam);

20.HRESULT Menubar([in] boolean vbool);

  HRESULT Menubar([out,retval] boolean* pbool);

21.HRESULT HostName([in] BSTR bstr);

  HRESULT HostName([out,retval] BSTR* pbstr);

  

22. HRESULT DocumentFullName([out,retval] BSTR* pbstr);

   文档的路径

23.HRESULT PrintOut([in, optional] VARIANT PromptUser, [in, optional] VARIANT PrinterName, [in, optional] VARIANT Copies,

    [in, optional] VARIANT FromPage, [in, optional] VARIANT ToPage, [in, optional] VARIANT OutputFile);

24.HRESULT PrintPreview();

   

25.HRESULT PrintPreviewExit();

26.HRESULT IsReadOnly([out,retval] boolean* pbool);

   是否为只读的。

27.HRESULT IsDirty([out,retval] boolean* pbool);

   是否保存了,实际可以用来判读文档有没有修改

   oframer.IsDirty = TRUE //文档没有保存,处于修改状态

    oframer.IsDirty = FALSE //文档已经保存,没有修改

新加的接口说明(开发接口)

[color=red][b]当前版本:V 2.2.0.8   2007-02-07[/b]

[/color]下载控件需要登录

说明:

控件未经大批量测试,难免有Bug,

发现 Bug,请及时发帖或者Mail:wanhhf@gmail.com

版本修改记录:

V2.2.0.8修改:

                增加了N多个事件,挺不错的东西

                [id(DSOF_DISPID_WORD_DocumentChange), helpstring("DSOF_DISPID_WORD_DocumentChange")]

                HRESULT WORD_DocumentChange();

                [id(DSOF_DISPID_WORD_DocumentBeforePrint), helpstring("DSOF_DISPID_WORD_DocumentBeforePrint")]

                HRESULT WORD_DocumentBeforePrint();

                [id(DSOF_DISPID_WORD_WindowActivate), helpstring("DSOF_DISPID_WORD_WindowActivate")]

                HRESULT WORD_WindowActivate();

                [id(DSOF_DISPID_WORD_WindowSelectionChange), helpstring("DSOF_DISPID_WORD_WindowSelectionChange")]

                HRESULT WORD_WindowSelectionChange();

                [id(DSOF_DISPID_WORD_WindowBeforeRightClick), helpstring("DSOF_DISPID_WORD_WindowBeforeRightClick")]

                HRESULT WORD_WindowBeforeRightClick();

                [id(DSOF_DISPID_WORD_WindowBeforeDoubleClick), helpstring("DSOF_DISPID_WORD_WindowBeforeDoubleClick")]

                HRESULT WORD_WindowBeforeDoubleClick();

V2.2.0.6修改:

                修改Open,参数为空时候,一个小 Bug

                修改了URL过长时候一个Bug

                增加了一个替换文字的接口

                long ReplaceText(BSTR strSearchText, BSTR strReplaceText,  long lGradation);

V2.2.0.2修改:

                修改了HttpPost相对路径的一些问题。   

V2.2.0.0增加:

                [id(0x00010041), helpstring("Get Rev Index")]

                HRESULT GetRevCount( [out,retval] long * pbool);

                [id(0x00010042), helpstring("Get Rev Index Info")]

                HRESULT GetRevInfo([in] long lIndex, [in]  long lType, [out,retval] BSTR* pbool);

                [id(0x00010043), helpstring("Set Doc Prop")]

                HRESULT SetValue([in] BSTR strValue, [in]  BSTR strName, [out,retval] long* pbool);

                [id(0x00010044), helpstring("Set Doc Variable")]

                HRESULT SetDocVariable([in] BSTR strVarName, [in]  BSTR strValue,[in] long lOpt, [out,retval] long* pbool);

                [id(0x00010045), helpstring("Save page To Doc")]

                HRESULT SetPageAs([in] BSTR strLocalFile, [in]  long lPageNum, [in]  long lType,[out,retval] long* pbool);

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

LoadDso.js

var s = ""

s += "<OBJECT id=DSOFramer align='middle' style='LEFT: 0px; WIDTH: 100%; TOP: 0px; HEIGHT: 100%'"

s += "classid=clsid:00460182-9E5E-11D5-B7C8-B8269041DD57 codeBase=DSOFramer.ocx#Version=2,2,0,6' >"

s += "</OBJECT>"

document.write(s)

接口文档:

 

//新建Word

document.all.FramerControl1.CreateNew("Word.Document");

//新建Excel

document.all.FramerControl1.CreateNew("Excel.Sheet");

 

//打开制定的本地文件

document.all.FramerControl1.Open("C:\\TestBook.xls");

//制定用Word来打开c:\plain.txt文件

document.all.FramerControl1.Open("C:\\Plain.txt",false, "Word.Document");

//打开服务器的文件

document.all.FramerControl1.Open "https://secureserver/test/mytest.asp?id=123",true, "Excel.Sheet", "MyUserAccount", "MyPassword");

//打开服务器的文件

document.all.FramerControl1.Open("http://localhost/1.doc", true);

 

//到本地

document.all.FramerControl1.Save("c:\\1.doc",true);

//服务器   

 

//初始化Http引擎

document.all.FramerControl1.HttpInit();

//增加Post变量

document.all.FramerControl1.HttpAddPostString("RecordID","20060102200");

document.all.FramerControl1.HttpAddPostString("UserID","李局长");

//上传打开的文件

document.all.FramerControl1.HttpAddPostCurrFile("FileData", "文档名.doc");

//执行上传动作

document.all.FramerControl1.HttpPost("http://xxxx.com/uploadfile.asp");

 

//进入留痕状态

document.all.FramerControl1.SetTrackRevisions(1);

//进入非留痕状态

document.all.FramerControl1.SetTrackRevisions(0);

//接受当前修订

document.all.FramerControl1.SetTrackRevisions(4);

 

document.all.FramerControl1.SetCurrUserName("张三");        

 

document.all.FramerControl1.SetCurrTime("2006:02:07 11:11:11");

 

//在当前WORD位置插入标签,标签名为"book1",数值为"test"

document.all.FramerControl1.SetFieldValue("book1","test","::ADDMARK::");

//设置书签"Time",数值为"2006-03-16 22:22:22"

document.all.FramerControl1.SetFieldValue("Time","2006-03-16 22:22:22","");

//在书签位置"hongtou",插入红头文件"http://222.222.222.222/hongtou1.doc" 这样,红头就自动插进去了

document.all.FramerControl1.SetFieldValue("hongtou","http://222.222.222.222/hongtou1.doc","::FILE::");

 

//只有新建菜单可用

document.all.FramerControl1..SetMenuDisplay(1);

//只有打开菜单可用

document.all.FramerControl1.SetMenuDisplay(2);

//只有打开新建菜单可用

document.all.FramerControl1.SetMenuDisplay(3);

 

//完全保护文档,密码为"pwd"   

document.all.FramerControl1.ProtectDoc(1,1,"pwd");

//解除文档保护                 

document.all.FramerControl1.ProtectDoc(0,1,"pwd");

 

//显示修订留痕

document.all.FramerControl1.ShowRevisions(1);

//隐藏修订留痕

document.all.FramerControl1.ShowRevisions(0);

 

//文件头部插入文件

document.all.FramerControl1.InSertFile("http://XX.com/XX.doc",1);

//文件尾部插入文件

document.all.FramerControl1.InSertFile("http://XX.com/XX.doc",2);

//当前光标位置插入文件

document.all.FramerControl1.InSertFile("http://XX.com/XX.doc",0);

//文件头部插入图片

document.all.FramerControl1.InSertFile("http://XX.com/XX.jpg",9);

//文件尾部插入图片

document.all.FramerControl1.InSertFile("http://XX.com/XX.jpg",10);

//当前光标位置插入图片

document.all.FramerControl1.InSertFile("http://XX.com/XX.jpg",8);

 

               

 

 

//大纲模式

document.all.FramerControl1.ShowView(5);

 

 

 

var vCount;

vCount = document.all.FramerControl1.GetRevCount();

alert(vCount);

var vOpt = 0;

var vDate;

for(var i=1; i<= vCount; i++){

        vOpt = document.all.FramerControl1.GetRevInfo(i,2);

        if("1" == vOpt){

                vOpt = "插入";

        }else if("2" == vOpt){

                vOpt = "删除";

        }else{

                vOpt = "未知操作";

        }

        vDate = new String(document.all.FramerControl1.GetRevInfo(i,1));

        vDate = parseFloat(vDate);

        alert(vDate);

        dateObj = new Date(vDate);

  alert(dateObj.getYear()   + "" + dateObj.getMonth() + 1 + "" + dateObj.getDate() +"" +  dateObj.getHours() +"" +  dateObj.getMinutes() +"" +  dateObj.getSeconds() +"" );

        alert("用户:"+document.all.FramerControl1.GetRevInfo(i,0) + "\r\n操作:" + vOpt + "\r\n内容:" + document.all.FramerControl1.GetRevInfo(i,3));

}

 

//设置文件只读密码

document.all.FramerControl1.SetValue("password","::DOCPROP:PassWord");

//设置文件修改密码

document.all.FramerControl1.SetValue("password","::DOCPROP:WritePW");

 

 

DSO上传服务器原理

Dsoframer1控件采用文件Http上传接口实现文件和表单域的上传保存。

1. 原理

因为Web页面上的Dsoframer1打开的文件无法随表单记录提交到处理页面,所以我们把文件模拟成表单的文件域<input type=file …>,通过接口把文件和表单元素发送到保存记录的页面(过程类似表单的提交)。

2. 主要上传接口:

HttpInit();

该方法用于初始化上传接口,不需要设置参数

HttpAddPostString(String FieldName, String someValue);

添加要提交的表单域, FieldName是要上传表单域名称,someValue是表单域值

例一:

HttpAddPostString("username", "zhangSan");

它类似域表单域的

<input type=text name=username value=zhangSan>

  例二:

   HttpAddPostString("username", WebForm.username.value);

   ….

   <form name= WebForm >

<input type=text name=username value=zhangSan>

   </form>

注意:如果使用上传接口,那么form表单里的表单域不会被提交到处理页面。需要手工添加到上传接口(HttpAddPostString接口),然后通过控件发送到处理页面。例二使用了“WebForm.username.value”获取表单域值。

HttpAddPostCurrFile(String fileName, String ReName);

添加当前Dsoframer1编辑的文件给上传接口,该接口把文件模拟到成一个表单的文件域,并提交到处理页面。

例一:

HttpAddPostCurrFile("File", "");

该接口模拟表单文件域如下:

<input type=file name=File >

注意:第二个参数为空表示控件自动为文件命名,如:temp.doc,如果需要重命名可以在第二个参数指明文件名称,也可在保存页面指定文件名称。

HttpPost(String url);

执行上传操作将文件和表单域提交到url的页面进行保存操作,并获取url页面返回的执行结果 (是否成功,可以根据这个结果来获取服务器端执行的结果)。

url支持绝对路径和相对路径。

绝对路径,例如:[url=http://192.168.0.1/savedoc.asp]http://192.168.0.1/savedoc.asp[/url]

相对路径要以“./”或者“../”开头。例如:./savedoc.asp

3. 完整的上传接口演示

function SaveDoc() {

var returnValue;     // 保存页面的返回值

document.all.Dsoframer11.HttpInit(); // 初始化Http引擎

// 添加相应的Post元素

document.all.Dsoframer11.HttpAddPostString("username", WebForm. username.value);

// 添加上传文件

document.all.Dsoframer11.HttpAddPostCurrFile("File ","");

// 提交上传文件

returnValue = document.all.Dsoframer11.HttpPost("../saveDoc.jsp");

if("true" == returnValue){

  alert("文件上传成功");

} else  {

  alert("文件上传失败")

}

}

4. 关于保存

Dsoframer1上传接口将数据流以Http方式提交到保存页面,至于对数据处理就和普通的文件上传处理一样了.

版本修改记录: V2.2.0.2修改: 修改了HttpPost相对路径的一些问题。 V2.2.0.0增加: [id(0x00010041), helpstring("Get Rev Index")] HRESULT GetRevCount( [out,retval] long * pbool); [id(0x00010042), helpstring("Get Rev Index Info")] HRESULT GetRevInfo([in] long lIndex, [in] long lType, [out,retval] BSTR* pbool); [id(0x00010043), helpstring("Set Doc Prop")] HRESULT SetValue([in] BSTR strValue, [in] BSTR strName, [out,retval] long* pbool); [id(0x00010044), helpstring("Set Doc Variable")] HRESULT SetDocVariable([in] BSTR strVarName, [in] BSTR strValue,[in] long lOpt, [out,retval] long* pbool); [id(0x00010045), helpstring("Save page To Doc")] HRESULT SetPageAs([in] BSTR strLocalFile, [in] long lPageNum, [in] long lType,[out,retval] long* pbool); ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- LoadDso.js var s = "" s += "" s += "" document.write(s) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- 接口文档: /* 1.新建 */ //新建Word document.all.FramerControl1.CreateNew("Word.Document"); //新建Excel document.all.FramerControl1.CreateNew("Excel.Sheet"); /* 2.打开文件 */ //打开制定的本地文件 document.all.FramerControl1.Open("C:\\TestBook.xls"); //制定用Word来打开c:\plain.txt文件 document.all.FramerControl1.Open("C:\\Plain.txt",false, "Word.Document"); //打开服务器的文件 document.all.FramerControl1.Open "https://secureserver/test/mytest.asp?id=123",true, "Excel.Sheet", "MyUserAccount", "MyPassword"); //打开服务器的文件 document.all.FramerControl1.Open("http://localhost/1.doc", true); /* 3.保存文件 */ //到本地 document.all.FramerControl1.Save("c:\\1.doc",true); //服务器 /*增加Http协议Post上传接口,可以Post一个动态页面(jsp,asp,php...),由动态页面负责解析数据 bool HttpInit(); bool HttpAddPostString(BSTR strName, BSTR strValue); bool HttpAddPostCurrFile(BSTR strFileID, BSTR strFileName); BSTR HttpPost(BSTR bstr); */ //初始化Http引擎 document.all.FramerControl1.HttpInit(); //增加Post变量 document.all.FramerControl1.HttpAddPostString("RecordID","20060102200"); document.all.FramerControl1.HttpAddPostString("UserID","李局长"); //上传打开的文件 document.all.FramerControl1.HttpAddPostCurrFile("FileData", "文档名.doc"); //执行上传动作 document.all.FramerControl1.HttpPost("http://xxxx.com/uploadfile.asp"); /* 4.修订留痕 */ //进入留痕状态 document.all.FramerControl1.SetTrackRevisions(1); //进入非留痕状态 document.all.FramerControl1.SetTrackRevisions(0); //接受当前修订 document.all.FramerControl1.SetTrackRevisions(4); /* 5.设置当前用户 */ document.all.FramerControl1.SetCurrUserName("张三"); /* 6.设置当前时间(笔迹留痕会显示("Like 2006:02:07 11:11:11") */ document.all.FramerControl1.SetCurrTime("2006:02:07 11:11:11"); /* 7.设置和创建书签,此功能比较强大,设置书签数据、添加书签和添加红头文件就靠他了 SetFieldValue(BSTR strFieldName, BSTR strValue, BSTR strCmdOrSheetName) strFieldName:书签名 strValue:要设置的值 strCmdOrSheetName: 命令 ::ADDMARK:: 添加BookMark ::DELMARK:: 删除这个BookMark ::GETMARK:: 定位到这个BookMark ::FILE:: 插入的是文件 ::JPG:: 插入的是图片 一般来说:WORD中书签是做好的,可以通过此接口把外界数据设置进书签中去。 */ //在当前WORD位置插入标签,标签名为"book1",数值为"test" document.all.FramerControl1.SetFieldValue("book1","test","::ADDMARK::"); //设置书签"Time",数值为"2006-03-16 22:22:22" document.all.FramerControl1.SetFieldValue("Time","2006-03-16 22:22:22",""); //在书签位置"hongtou",插入红头文件"http://222.222.222.222/hongtou1.doc" 这样,红头就自动插进去了 document.all.FramerControl1.SetFieldValue("hongtou","http://222.222.222.222/hongtou1.doc","::FILE::"); /* 8.设置菜单显示情况 BOOL SetMenuDisplay(long lMenuFlag) lMenuFlag为以下数值的组合 #define MNU_NEW 0x01 #define MNU_OPEN 0x02 #define MNU_CLOSE 0x04 #define MNU_SAVE 0x08 #define MNU_SAVEAS 0x16 #define MNU_PGSETUP 0x64 #define MNU_PRINT 0x256 #define MNU_PROPS 0x32 #define MNU_PRINTPV 0x126 */ //只有“新建”菜单可用 document.all.FramerControl1..SetMenuDisplay(1); //只有“打开”菜单可用 document.all.FramerControl1.SetMenuDisplay(2); //只有“打开”和“新建”菜单可用 document.all.FramerControl1.SetMenuDisplay(3); /* 9.保护文档和解保护文档 lProOrUn:1:保护文档;0:解除保护 lProType: wdNoProtection = -1, wdAllowOnlyRevisions = 0, wdAllowOnlyComments = 1, wdAllowOnlyFormFields = 2 strProPWD:密码 */ //完全保护文档,密码为"pwd" document.all.FramerControl1.ProtectDoc(1,1,"pwd"); //解除文档保护 document.all.FramerControl1.ProtectDoc(0,1,"pwd"); /* 10.显示或隐藏修订内容 ShowRevisions(long nNewValue) nNewValue = 0 则隐藏修订 = 1 则显示修订 */ //显示修订留痕 document.all.FramerControl1.ShowRevisions(1); //隐藏修订留痕 document.all.FramerControl1.ShowRevisions(0); /* 11.插入合并文件, strFieldPath 文件路径,可以是http,ftp的路径 pPos = 0 //当前鼠标位置 1;文件开头 2;文件末尾 pPos的第4位为1的时候,代表插入的是图片 InSertFile(BSTR strFieldPath, long lPos) */ //文件头部插入文件 document.all.FramerControl1.InSertFile("http://XX.com/XX.doc",1); //文件尾部插入文件 document.all.FramerControl1.InSertFile("http://XX.com/XX.doc",2); //当前光标位置插入文件 document.all.FramerControl1.InSertFile("http://XX.com/XX.doc",0); //文件头部插入图片 document.all.FramerControl1.InSertFile("http://XX.com/XX.jpg",9); //文件尾部插入图片 document.all.FramerControl1.InSertFile("http://XX.com/XX.jpg",10); //当前光标位置插入图片 document.all.FramerControl1.InSertFile("http://XX.com/XX.jpg",8); /* 0x31. 文档另存为 HRESULT SaveAs([in] VARIANT strFileName, [in] VARIANT dwFileFormat, [out,retval] long* pbool); 参数: strFileName:文件本地路径,如c:\\11.doc dwFileFormat: 文件格式 dwFileFormat的数值为: Excel: Type enum XlFileFormat { xlAddIn = 18, xlCSV = 6, xlCSVMac = 22, xlCSVMSDOS = 24, xlCSVWindows = 23, xlDBF2 = 7, xlDBF3 = 8, xlDBF4 = 11, xlDIF = 9, xlExcel2 = 16, xlExcel2FarEast = 27, xlExcel3 = 29, xlExcel4 = 33, xlExcel5 = 39, xlExcel7 = 39, xlExcel9795 = 43, xlExcel4Workbook = 35, xlIntlAddIn = 26, xlIntlMacro = 25, xlWorkbookNormal = -4143, xlSYLK = 2, xlTemplate = 17, xlCurrentPlatformText = -4158, xlTextMac = 19, xlTextMSDOS = 21, xlTextPrinter = 36, xlTextWindows = 20, xlWJ2WD1 = 14, xlWK1 = 5, xlWK1ALL = 31, xlWK1FMT = 30, xlWK3 = 15, xlWK4 = 38, xlWK3FM3 = 32, xlWKS = 4, xlWorks2FarEast = 28, xlWQ1 = 34, xlWJ3 = 40, xlWJ3FJ3 = 41, xlUnicodeText = 42, xlHtml = 44 }; Word: Type enum WdSaveFormat { wdFormatDocument = 0, wdFormatTemplate = 1, wdFormatText = 2, wdFormatTextLineBreaks = 3, wdFormatDOSText = 4, wdFormatDOSTextLineBreaks = 5, wdFormatRTF = 6, wdFormatUnicodeText = 7, wdFormatEncodedText = 7, wdFormatHTML = 8 }; PPT: enum PpSaveAsFileType { ppSaveAsPresentation = 1, ppSaveAsPowerPoint7 = 2, ppSaveAsPowerPoint4 = 3, ppSaveAsPowerPoint3 = 4, ppSaveAsTemplate = 5, ppSaveAsRTF = 6, ppSaveAsShow = 7, ppSaveAsAddIn = 8, ppSaveAsPowerPoint4FarEast = 10, ppSaveAsDefault = 11, ppSaveAsHTML = 12, ppSaveAsHTMLv3 = 13, ppSaveAsHTMLDual = 14, ppSaveAsMetaFile = 15, ppSaveAsGIF = 16, ppSaveAsJPG = 17, ppSaveAsPNG = 18, ppSaveAsBMP = 19 }; */ /* 0x32. 删除本地文件 HRESULT DeleteLocalFile([in] BSTR strFilePath); 参数: strFileName:文件本地路径,如c:\\11.doc */ /* 0x33.创建临时文件 HRESULT GetTempFilePath([out,retval] BSTR* strValue); 返回: 临时文件的路径地址。使用完后,用DeleteLocalFile 删除 */ /* 0x34.设置文档显示模式 HRESULT ShowView([in] long dwViewType, [out,retval] long * pbool); dwViewType的可取值为: enum WdViewType { wdNormalView = 1, wdOutlineView = 2, wdPrintView = 3, wdPrintPreview = 4, wdMasterView = 5, //这个是大纲 wdWebView = 6 }; */ //大纲模式 document.all.FramerControl1.ShowView(5); /* 0x39:下载远程文件 HRESULT DownloadFile( [in] BSTR strRemoteFile, [in] BSTR strLocalFile, [out,retval] BSTR* strValue); 参数: strRemoteFile:远程路径地址,http or Ftp strLocalFile: 本地保存地址,if strLocalFile == NULL then Create Temp File and return TempFile's Path */ /* 0x40:增加Http上传时候的,附加其他文件 HRESULT HttpAddPostFile([in] BSTR strFileID, [in] BSTR strFileName, [out,retval] long* pbool); 参数: strFileID:文件的ID,供服务器端页面解析 strFileName: 本地文件地址 */ /* 0x41,0x42.获取详细的修订信息。 GetRevCount( [out,retval] long * pbool); GetRevInfo([in] long lIndex, [in] long lType, [out,retval] BSTR* pbool); 例子如下 */ var vCount; vCount = document.all.FramerControl1.GetRevCount(); alert(vCount); var vOpt = 0; var vDate; for(var i=1; i<= vCount; i++){ vOpt = document.all.FramerControl1.GetRevInfo(i,2); if("1" == vOpt){ vOpt = "插入"; }else if("2" == vOpt){ vOpt = "删除"; }else{ vOpt = "未知操作"; } vDate = new String(document.all.FramerControl1.GetRevInfo(i,1)); vDate = parseFloat(vDate); alert(vDate); dateObj = new Date(vDate); alert(dateObj.getYear() + "年" + dateObj.getMonth() + 1 + "月" + dateObj.getDate() +"日" + dateObj.getHours() +"时" + dateObj.getMinutes() +"分" + dateObj.getSeconds() +"秒" ); alert("用户:"+document.all.FramerControl1.GetRevInfo(i,0) + "\r\n操作:" + vOpt + "\r\n内容:" + document.all.FramerControl1.GetRevInfo(i,3)); } /* 0x43.设置基本信息: HRESULT SetValue([in] BSTR strValue, [in] BSTR strName, [out,retval] long* pbool); 1.设置文件只读密码 SetValue("password","::DOCPROP:PassWord"); 2.设置文件修改密码 SetValue("password","::DOCPROP:WritePW"); 返回值: 0 正确 -1:不支持此命令,请确定您的第二个参数没有传错 -127:异常 */ //设置文件只读密码 document.all.FramerControl1.SetValue("password","::DOCPROP:PassWord"); //设置文件修改密码 document.all.FramerControl1.SetValue("password","::DOCPROP:WritePW"); /* 0x44.设置文档变量,这个很少能用到 HRESULT SetDocVariable([in] BSTR strVarName, [in] BSTR strValue,[in] long lOpt, [out,retval] long* pbool); strVarName: 变量名 strVlaue:变量值 lOpt: 操作类型, 按位 第一位为1: 表示update域关联的 第二位为1: 表示如果没有这个变量则添加 第三位为1: 未来支持 return: 0:OK -127:异常 */ /* 0x45: 分页保存 HRESULT SetPageAs([in] BSTR strLocalFile, [in] long lPageNum, [in] long lType,[out,retval] long* pbool); strLocalFile:本地路径 lPageNum:页数 */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值