当前位置:主页>Visual Basic教程>文章内容
插入对象
来源: 作者: 发布时间:2007-04-29  
'说明:表单一个;命令按钮一个为CmdInsertObject;RichTextBox控件一个为RichTextBox1

OptionExplicit

PrivateDeclareFunctionOleUIInsertObjectLib"oledlg.dll"Alias"OleUIInsertObjectA"(inParamAsAny)AsLong

PrivateDeclareFunctionProgIDFromCLSIDLib"ole32.dll"(clsidAsAny,strAddessAsLong)AsLong

PrivateDeclareSubCoTaskMemFreeLib"ole32.dll"(ByValpvoidAsLong)

PrivateDeclareSubCopyMemoryLib"kernel32"Alias"RtlMoveMemory"(DestinationAsAny,SourceAsAny,ByValLengthAsLong)

PrivateDeclareFunctionlstrlenWLib"kernel32"(ByVallpStringAsLong)AsLong

PrivateTypeGUID
Data1AsLong
Data2AsInteger
Data3AsInteger
Data4(0To7)AsByte
EndType

PrivateTypeOleUIInsertObjectType
cbStructAsLong
dwFlagsAsLong
hWndOwnerAsLong
lpszCaptionAsString
lpfnHookAsLong
lCustDataAsLong
hInstanceAsLong
lpszTemplateAsString
hResourceAsLong
clsidAsGUID
lpszFileAsString
cchFileAsLong
cClsidExcludeAsLong
lpClsidExcludeAsLong
IIDAsGUID
oleRenderAsLong
lpFormatEtcAsLong
lpIOleClientSiteAsLong
lpIStorageAsLong
ppvObjAsLong
scAsLong
hMetaPictAsLong
EndType

PrivateConstIOF_SHOWHELP=&H1
PrivateConstIOF_SELECTCREATENEW=&H2
PrivateConstIOF_SELECTCREATEFROMFILE=&H4
PrivateConstIOF_CHECKLINK=&H8
PrivateConstIOF_CHECKDISPLAYASICON=&H10
PrivateConstIOF_CREATENEWOBJECT=&H20
PrivateConstIOF_CREATEFILEOBJECT=&H40
PrivateConstIOF_CREATELINKOBJECT=&H80
PrivateConstIOF_DISABLELINK=&H100
PrivateConstIOF_VERIFYSERVERSEXIST=&H200
PrivateConstIOF_DISABLEDISPLAYASICON=&H400
PrivateConstIOF_HIDECHANGEICON=&H800
PrivateConstIOF_SHOWINSERTCONTROL=&H1000
PrivateConstIOF_SELECTCREATECONTROL=&H2000

PrivateConstOLEUI_FALSE=0
PrivateConstOLEUI_OK=1
PrivateConstOLEUI_CANCEL=2

PrivateSubCmdInsertObject_Click()

Dimlu_InsertObjectAsOleUIInsertObjectType
Dimll_ReturnValueAsLong
Dimll_StringPointerAsLong
Dimll_TextLengthAsLong
Dimls_ProgIDAsString

'初始化插入对象
Withlu_InsertObject
.cbStruct=LenB(lu_InsertObject)
.dwFlags=IOF_SELECTCREATENEW
.hWndOwner=Me.hWnd
.lpszFile=Space(255)
.cchFile=255
EndWith

'显示插入对象对话框
ll_ReturnValue=OleUIInsertObject(lu_InsertObject)

Ifll_ReturnValue=OLEUI_OKThen
If(lu_InsertObject.dwFlagsAndIOF_SELECTCREATENEW)=IOF_SELECTCREATENEWThen
'选择"新建"按钮时
'给出进程ID与类ID
ll_ReturnValue=ProgIDFromCLSID(lu_InsertObject.clsid,ll_StringPointer)
'进程ID长度,是Unicode字符串
ll_TextLength=lstrlenW(ll_StringPointer) 1
'初始化字符串
ls_ProgID=Space(ll_TextLength)
'拷贝ll_StringPointer指针到字符串ls_ProgID
CopyMemoryByValStrPtr(ls_ProgID),ByValll_StringPointer,ll_TextLength*2
'清除内存
CoTaskMemFreell_StringPointer

'添加对象到RichTextBox中
RichTextBox1.OLEObjects.Add,,"",ls_ProgID

Else

'选择:"从文件创建"时
RichTextBox1.OLEObjects.Add,,lu_InsertObject.lpszFile

EndIf
EndIf

EndSub->


 
上一篇:在VB组件内调用Excel2000实现GIF饼图   下一篇:如何在VB6中导出EXCEL、FOXPRO格式的表
 
  相关文章
·在VB组件内调用Excel2000实现GIF饼图
·如何在VB6中导出EXCEL、FOXPRO格式的表
·VB与MS-Draw开发通用作图软件
·用OLE自动化Outlook
·用VB5直接控制Excel97
·MTS管理自动化
·创建一个简单的OLEDB提供者
·VB中使用数据窗体设计器插件
·使用VBA-Excel97绘图
·在VB中引用.dbf及索引文件
·在Word中嵌入应用程序
·在VB中直接用ODBCAPI访问数据库
 
【关闭窗口】
推荐本站资源
最新文章