我试图在浏览器外的Silverlight5应用程序中使用ActiveX控件。
此代码(适用于浏览器内)有效:
主持人Html页面:
<script type="text/javascript">
function GetAXObjectStatus() {
var axObject = document.getElementById("axObject");
return axObject != null ? axObject.GetStatus() : -1;
}
</script>
</head>
<body>
<object id="axObject" classid="CLSID:my-cls-id"></object>
Silverlight的:
string result = HtmlPage.Window.Invoke("GetAXObjectStatus").ToString(); // works fine
但是,以下(对于无外游者),这是我的目标,并不起作用:
// Application.Current.HasElevatedPermissions == true
// AutomationFactory.IsAvailable == true
dynamic axObject = AutomationFactory.CreateObject("my_prog_id"); // returns a non-null object
axObject.GetStatus(); // produces a "Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))"
知道可能出现什么问题吗?