请教:
我做了一个ACTIVEX控件,在HTM 中调用,遇到以下问题,没有解决,向大家请教:如果有同样的贴,请告诉我。
1. (IIS)服务器端,能正常,客户端显示不了(如果把控件放到客户端注册一下,就可以了,(客户端也不提示下载)
代码:<OBJECT classid="clsid:C064F07F-27A3-4E53-A891-6BE135D861AE"
codebase="uf.cap#version=1.0.0.0"
width=985
height=600
align=center
hspace=0
vspace=0
>
</OBJECT> 2. 我想实现安全接口,完全按照
http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q182/5/98.asp&NoWebContent=1
上面操作后,运行时,系统提示。类不支持自动化接口与期望的接口,
不知什么问题,请教
Private Sub IObjectSafety_GetInterfaceSafetyOptions(ByVal riid As _
Long, pdwSupportedOptions As Long, pdwEnabledOptions As Long) Dim Rc As Long
Dim rClsId As udtGUID
Dim IID As String
Dim bIID() As Byte pdwSupportedOptions = INTERFACESAFE_FOR_UNTRUSTED_CALLER Or _
INTERFACESAFE_FOR_UNTRUSTED_DATA If (riid <> 0) Then
CopyMemory rClsId, ByVal riid, Len(rClsId) bIID = String$(MAX_GUIDLEN, 0)
Rc = StringFromGUID2(rClsId, VarPtr(bIID(0)), MAX_GUIDLEN)
Rc = InStr(1, bIID, vbNullChar) - 1
IID = Left$(UCase(bIID), Rc) Select Case IID
Case IID_IDispatch
pdwEnabledOptions = IIf(m_fSafeForScripting, _
INTERFACESAFE_FOR_UNTRUSTED_CALLER, 0)
Exit Sub
Case IID_IPersistStorage, IID_IPersistStream, _
IID_IPersistPropertyBag
pdwEnabledOptions = IIf(m_fSafeForInitializing, _
INTERFACESAFE_FOR_UNTRUSTED_DATA, 0)
Exit Sub
Case Else
Err.Raise E_NOINTERFACE -' 这行提示类不支持自动化接口
Exit Sub
End Select
End If
End Sub
我做了一个ACTIVEX控件,在HTM 中调用,遇到以下问题,没有解决,向大家请教:如果有同样的贴,请告诉我。
1. (IIS)服务器端,能正常,客户端显示不了(如果把控件放到客户端注册一下,就可以了,(客户端也不提示下载)
代码:<OBJECT classid="clsid:C064F07F-27A3-4E53-A891-6BE135D861AE"
codebase="uf.cap#version=1.0.0.0"
width=985
height=600
align=center
hspace=0
vspace=0
>
</OBJECT> 2. 我想实现安全接口,完全按照
http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q182/5/98.asp&NoWebContent=1
上面操作后,运行时,系统提示。类不支持自动化接口与期望的接口,
不知什么问题,请教
Private Sub IObjectSafety_GetInterfaceSafetyOptions(ByVal riid As _
Long, pdwSupportedOptions As Long, pdwEnabledOptions As Long) Dim Rc As Long
Dim rClsId As udtGUID
Dim IID As String
Dim bIID() As Byte pdwSupportedOptions = INTERFACESAFE_FOR_UNTRUSTED_CALLER Or _
INTERFACESAFE_FOR_UNTRUSTED_DATA If (riid <> 0) Then
CopyMemory rClsId, ByVal riid, Len(rClsId) bIID = String$(MAX_GUIDLEN, 0)
Rc = StringFromGUID2(rClsId, VarPtr(bIID(0)), MAX_GUIDLEN)
Rc = InStr(1, bIID, vbNullChar) - 1
IID = Left$(UCase(bIID), Rc) Select Case IID
Case IID_IDispatch
pdwEnabledOptions = IIf(m_fSafeForScripting, _
INTERFACESAFE_FOR_UNTRUSTED_CALLER, 0)
Exit Sub
Case IID_IPersistStorage, IID_IPersistStream, _
IID_IPersistPropertyBag
pdwEnabledOptions = IIf(m_fSafeForInitializing, _
INTERFACESAFE_FOR_UNTRUSTED_DATA, 0)
Exit Sub
Case Else
Err.Raise E_NOINTERFACE -' 这行提示类不支持自动化接口
Exit Sub
End Select
End If
End Sub
引用Objsafe.tlb时,选择“类型库(*.olb;*.tlb;*.dll)”却在目录中看不到此文件,但此文件确实存在此目录下,只能选择“所有文件(*.*)”才可以看到此文件,但是选中后点击“打开”按钮,此库文件并没有被引用进工程,不知道为何?编译时就提示“Implements IObjectSafety”中的自定义类型未声明。我想后面的问题肯定是因为前面没有引用成功所致,但是为什么引用不成功呢?
希望有高手能给予解答一下,谢谢!