Javascript中如何传递“IPictureDisp*”类型的参数?

hugeice 2011-08-17 09:07:42
一个视频播放ActiveX中有如下方法:

[id(DSPID_ADDSUBTITLE), helpstring("Add optional subtitle to control")]
HRESULT AddSubtitle([in] BSTR language, [in] BSTR url, [in] LONG index, [in] IPictureDisp* picture);

在HTML中如下调用,IE报错“类型不匹配”:

imgSubtitleChs = new Image();
imgSubtitleChs.src = "subtitle_chs.jpg";
ax7dliveplayer.AddSubtitle("chs", "chs.srt", 0, imgSubtitleChs);


请问Javascript如何传递一个图片给控件??控件是用IPictureDisp*还是用别的什么类型的参数才能接收JScript传递的图片??

谢谢!
...全文
143 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
hugeice 2011-08-17
  • 打赏
  • 举报
回复
to akirya:

从Javascript往ActiveX中传递图片,参数我应该用什么类型?(我需要在ActiveX中得到图片的位图数据)


hugeice 2011-08-17
  • 打赏
  • 举报
回复
250: memid = -2147417046, name = "removeNode", help = "(null)"
251: memid = -2147417044, name = "swapNode", help = "(null)"
252: memid = -2147417045, name = "replaceNode", help = "(null)"
253: memid = -2147417039, name = "appendChild", help = "(null)"
254: memid = -2147417038, name = "nodeName", help = "(null)"
255: memid = -2147417037, name = "nodeValue", help = "(null)"
256: memid = -2147417037, name = "nodeValue", help = "(null)"
257: memid = -2147417036, name = "firstChild", help = "(null)"
258: memid = -2147417035, name = "lastChild", help = "(null)"
259: memid = -2147417034, name = "previousSibling", help = "(null)"
260: memid = -2147417033, name = "nextSibling", help = "(null)"
261: memid = -2147416999, name = "ownerDocument", help = "(null)"
262: memid = -2147417091, name = "dataFld", help = "(null)"
263: memid = -2147417091, name = "dataFld", help = "(null)"
264: memid = -2147417090, name = "dataSrc", help = "(null)"
265: memid = -2147417090, name = "dataSrc", help = "(null)"
266: memid = -2147417089, name = "dataFormatAs", help = "(null)"
267: memid = -2147417089, name = "dataFormatAs", help = "(null)"
268: memid = -2147416912, name = "ie8_getAttributeNode", help = "(null)"
269: memid = -2147416911, name = "ie8_setAttributeNode", help = "(null)"
270: memid = -2147416910, name = "ie8_removeAttributeNode", help = "(null)"
271: memid = -2147416909, name = "hasAttribute", help = "(null)"
272: memid = -2147416908, name = "role", help = "(null)"
273: memid = -2147416908, name = "role", help = "(null)"
274: memid = -2147416907, name = "ariaBusy", help = "(null)"
275: memid = -2147416907, name = "ariaBusy", help = "(null)"
276: memid = -2147416906, name = "ariaChecked", help = "(null)"
277: memid = -2147416906, name = "ariaChecked", help = "(null)"
278: memid = -2147416905, name = "ariaDisabled", help = "(null)"
279: memid = -2147416905, name = "ariaDisabled", help = "(null)"
280: memid = -2147416904, name = "ariaExpanded", help = "(null)"
281: memid = -2147416904, name = "ariaExpanded", help = "(null)"
282: memid = -2147416903, name = "ariaHaspopup", help = "(null)"
283: memid = -2147416903, name = "ariaHaspopup", help = "(null)"
284: memid = -2147416902, name = "ariaHidden", help = "(null)"
285: memid = -2147416902, name = "ariaHidden", help = "(null)"
286: memid = -2147416901, name = "ariaInvalid", help = "(null)"
287: memid = -2147416901, name = "ariaInvalid", help = "(null)"
288: memid = -2147416900, name = "ariaMultiselectable", help = "(null)"
289: memid = -2147416900, name = "ariaMultiselectable", help = "(null)"
290: memid = -2147416899, name = "ariaPressed", help = "(null)"
291: memid = -2147416899, name = "ariaPressed", help = "(null)"
292: memid = -2147416898, name = "ariaReadonly", help = "(null)"
293: memid = -2147416898, name = "ariaReadonly", help = "(null)"
294: memid = -2147416897, name = "ariaRequired", help = "(null)"
295: memid = -2147416897, name = "ariaRequired", help = "(null)"
296: memid = -2147416896, name = "ariaSecret", help = "(null)"
297: memid = -2147416896, name = "ariaSecret", help = "(null)"
298: memid = -2147416895, name = "ariaSelected", help = "(null)"
299: memid = -2147416895, name = "ariaSelected", help = "(null)"
300: memid = -2147416894, name = "ie8_getAttribute", help = "(null)"
301: memid = -2147416893, name = "ie8_setAttribute", help = "(null)"
302: memid = -2147416892, name = "ie8_removeAttribute", help = "(null)"
303: memid = -2147416891, name = "ie8_attributes", help = "(null)"
304: memid = -2147416890, name = "ariaValuenow", help = "(null)"
305: memid = -2147416890, name = "ariaValuenow", help = "(null)"
306: memid = -2147416889, name = "ariaPosinset", help = "(null)"
307: memid = -2147416889, name = "ariaPosinset", help = "(null)"
308: memid = -2147416888, name = "ariaSetsize", help = "(null)"
309: memid = -2147416888, name = "ariaSetsize", help = "(null)"
310: memid = -2147416887, name = "ariaLevel", help = "(null)"
311: memid = -2147416887, name = "ariaLevel", help = "(null)"
312: memid = -2147416886, name = "ariaValuemin", help = "(null)"
313: memid = -2147416886, name = "ariaValuemin", help = "(null)"
314: memid = -2147416885, name = "ariaValuemax", help = "(null)"
315: memid = -2147416885, name = "ariaValuemax", help = "(null)"
316: memid = -2147416884, name = "ariaControls", help = "(null)"
317: memid = -2147416884, name = "ariaControls", help = "(null)"
318: memid = -2147416883, name = "ariaDescribedby", help = "(null)"
319: memid = -2147416883, name = "ariaDescribedby", help = "(null)"
320: memid = -2147416882, name = "ariaFlowto", help = "(null)"
321: memid = -2147416882, name = "ariaFlowto", help = "(null)"
322: memid = -2147416881, name = "ariaLabelledby", help = "(null)"
323: memid = -2147416881, name = "ariaLabelledby", help = "(null)"
324: memid = -2147416880, name = "ariaActivedescendant", help = "(null)"
325: memid = -2147416880, name = "ariaActivedescendant", help = "(null)"
326: memid = -2147416879, name = "ariaOwns", help = "(null)"
327: memid = -2147416879, name = "ariaOwns", help = "(null)"
328: memid = -2147416878, name = "hasAttributes", help = "(null)"
329: memid = -2147416877, name = "ariaLive", help = "(null)"
330: memid = -2147416877, name = "ariaLive", help = "(null)"
331: memid = -2147416876, name = "ariaRelevant", help = "(null)"
332: memid = -2147416876, name = "ariaRelevant", help = "(null)"
333: memid = -2147416998, name = "querySelector", help = "(null)"
334: memid = -2147416997, name = "querySelectorAll", help = "(null)"
335: memid = -2147417603, name = "constructor", help = "(null)"
336: memid = 2002, name = "isMap", help = "(null)"
337: memid = 2002, name = "isMap", help = "(null)"
338: memid = 2008, name = "useMap", help = "(null)"
339: memid = 2008, name = "useMap", help = "(null)"
340: memid = 2010, name = "mimeType", help = "(null)"
341: memid = 2011, name = "fileSize", help = "(null)"
342: memid = 2012, name = "fileCreatedDate", help = "(null)"
343: memid = 2013, name = "fileModifiedDate", help = "(null)"
344: memid = 2014, name = "fileUpdatedDate", help = "(null)"
345: memid = 2015, name = "protocol", help = "(null)"
346: memid = 2016, name = "href", help = "(null)"
347: memid = 2017, name = "nameProp", help = "(null)"
348: memid = 1004, name = "border", help = "(null)"
349: memid = 1004, name = "border", help = "(null)"
350: memid = 1005, name = "vspace", help = "(null)"
351: memid = 1005, name = "vspace", help = "(null)"
352: memid = 1006, name = "hspace", help = "(null)"
353: memid = 1006, name = "hspace", help = "(null)"
354: memid = 1002, name = "alt", help = "(null)"
355: memid = 1002, name = "alt", help = "(null)"
356: memid = 1003, name = "src", help = "(null)"
357: memid = 1003, name = "src", help = "(null)"
358: memid = 1007, name = "lowsrc", help = "(null)"
359: memid = 1007, name = "lowsrc", help = "(null)"
360: memid = 1008, name = "vrml", help = "(null)"
361: memid = 1008, name = "vrml", help = "(null)"
362: memid = 1009, name = "dynsrc", help = "(null)"
363: memid = 1009, name = "dynsrc", help = "(null)"
364: memid = 1010, name = "complete", help = "(null)"
365: memid = 1011, name = "loop", help = "(null)"
366: memid = 1011, name = "loop", help = "(null)"
367: memid = -2147418039, name = "align", help = "(null)"
368: memid = -2147418039, name = "align", help = "(null)"
369: memid = -2147412080, name = "onload", help = "(null)"
370: memid = -2147412080, name = "onload", help = "(null)"
371: memid = -2147412083, name = "onerror", help = "(null)"
372: memid = -2147412083, name = "onerror", help = "(null)"
373: memid = -2147412084, name = "onabort", help = "(null)"
374: memid = -2147412084, name = "onabort", help = "(null)"
375: memid = -2147418112, name = "name", help = "(null)"
376: memid = -2147418112, name = "name", help = "(null)"
377: memid = -2147418107, name = "width", help = "(null)"
378: memid = -2147418107, name = "width", help = "(null)"
379: memid = -2147418106, name = "height", help = "(null)"
380: memid = -2147418106, name = "height", help = "(null)"
381: memid = 1013, name = "Start", help = "(null)"
382: memid = 1013, name = "Start", help = "(null)"
383: memid = 2019, name = "longDesc", help = "(null)"
384: memid = 2019, name = "longDesc", help = "(null)"
385: memid = 1151, name = "ie8_longDesc", help = "(null)"
386: memid = 1151, name = "ie8_longDesc", help = "(null)"
387: memid = 1152, name = "ie8_vrml", help = "(null)"
388: memid = 1152, name = "ie8_vrml", help = "(null)"
389: memid = 1153, name = "ie8_lowsrc", help = "(null)"
390: memid = 1153, name = "ie8_lowsrc", help = "(null)"
391: memid = 1154, name = "ie8_dynsrc", help = "(null)"
392: memid = 1154, name = "ie8_dynsrc", help = "(null)"


-= 完 =-
  • 打赏
  • 举报
回复
传不了
你看html的对象中哪有IPictureDisp类型的
hugeice 2011-08-17
  • 打赏
  • 举报
回复
100: memid = -2147412061, name = "ondragenter", help = "(null)"
101: memid = -2147412061, name = "ondragenter", help = "(null)"
102: memid = -2147412060, name = "ondragover", help = "(null)"
103: memid = -2147412060, name = "ondragover", help = "(null)"
104: memid = -2147412059, name = "ondragleave", help = "(null)"
105: memid = -2147412059, name = "ondragleave", help = "(null)"
106: memid = -2147412058, name = "ondrop", help = "(null)"
107: memid = -2147412058, name = "ondrop", help = "(null)"
108: memid = -2147412054, name = "onbeforecut", help = "(null)"
109: memid = -2147412054, name = "onbeforecut", help = "(null)"
110: memid = -2147412057, name = "oncut", help = "(null)"
111: memid = -2147412057, name = "oncut", help = "(null)"
112: memid = -2147412053, name = "onbeforecopy", help = "(null)"
113: memid = -2147412053, name = "onbeforecopy", help = "(null)"
114: memid = -2147412056, name = "oncopy", help = "(null)"
115: memid = -2147412056, name = "oncopy", help = "(null)"
116: memid = -2147412052, name = "onbeforepaste", help = "(null)"
117: memid = -2147412052, name = "onbeforepaste", help = "(null)"
118: memid = -2147412055, name = "onpaste", help = "(null)"
119: memid = -2147412055, name = "onpaste", help = "(null)"
120: memid = -2147417105, name = "currentStyle", help = "(null)"
121: memid = -2147412065, name = "onpropertychange", help = "(null)"
122: memid = -2147412065, name = "onpropertychange", help = "(null)"
123: memid = -2147417068, name = "getClientRects", help = "(null)"
124: memid = -2147417067, name = "getBoundingClientRect", help = "(null)"
125: memid = -2147417608, name = "setExpression", help = "(null)"
126: memid = -2147417607, name = "getExpression", help = "(null)"
127: memid = -2147417606, name = "removeExpression", help = "(null)"
128: memid = -2147418097, name = "tabIndex", help = "(null)"
129: memid = -2147418097, name = "tabIndex", help = "(null)"
130: memid = -2147416112, name = "focus", help = "(null)"
131: memid = -2147416107, name = "accessKey", help = "(null)"
132: memid = -2147416107, name = "accessKey", help = "(null)"
133: memid = -2147412097, name = "onblur", help = "(null)"
134: memid = -2147412097, name = "onblur", help = "(null)"
135: memid = -2147412098, name = "onfocus", help = "(null)"
136: memid = -2147412098, name = "onfocus", help = "(null)"
137: memid = -2147412076, name = "onresize", help = "(null)"
138: memid = -2147412076, name = "onresize", help = "(null)"
139: memid = -2147416110, name = "blur", help = "(null)"
140: memid = -2147416095, name = "addFilter", help = "(null)"
141: memid = -2147416094, name = "removeFilter", help = "(null)"
142: memid = -2147416093, name = "clientHeight", help = "(null)"
143: memid = -2147416092, name = "clientWidth", help = "(null)"
144: memid = -2147416091, name = "clientTop", help = "(null)"
145: memid = -2147416090, name = "clientLeft", help = "(null)"
146: memid = -2147417605, name = "attachEvent", help = "(null)"
147: memid = -2147417604, name = "detachEvent", help = "(null)"
148: memid = -2147412996, name = "readyState", help = "(null)"
149: memid = -2147412087, name = "onreadystatechange", help = "(null)"
150: memid = -2147412087, name = "onreadystatechange", help = "(null)"
151: memid = -2147412050, name = "onrowsdelete", help = "(null)"
152: memid = -2147412050, name = "onrowsdelete", help = "(null)"
153: memid = -2147412049, name = "onrowsinserted", help = "(null)"
154: memid = -2147412049, name = "onrowsinserted", help = "(null)"
155: memid = -2147412048, name = "oncellchange", help = "(null)"
156: memid = -2147412048, name = "oncellchange", help = "(null)"
157: memid = -2147412995, name = "dir", help = "(null)"
158: memid = -2147412995, name = "dir", help = "(null)"
159: memid = -2147417056, name = "createControlRange", help = "(null)"
160: memid = -2147417055, name = "scrollHeight", help = "(null)"
161: memid = -2147417054, name = "scrollWidth", help = "(null)"
162: memid = -2147417053, name = "scrollTop", help = "(null)"
163: memid = -2147417053, name = "scrollTop", help = "(null)"
164: memid = -2147417052, name = "scrollLeft", help = "(null)"
165: memid = -2147417052, name = "scrollLeft", help = "(null)"
166: memid = -2147417050, name = "clearAttributes", help = "(null)"
167: memid = -2147412047, name = "oncontextmenu", help = "(null)"
168: memid = -2147412047, name = "oncontextmenu", help = "(null)"
169: memid = -2147417043, name = "insertAdjacentElement", help = "(null)"
170: memid = -2147417047, name = "applyElement", help = "(null)"
171: memid = -2147417042, name = "getAdjacentText", help = "(null)"
172: memid = -2147417041, name = "replaceAdjacentText", help = "(null)"
173: memid = -2147417040, name = "canHaveChildren", help = "(null)"
174: memid = -2147417032, name = "addBehavior", help = "(null)"
175: memid = -2147417031, name = "removeBehavior", help = "(null)"
176: memid = -2147417048, name = "runtimeStyle", help = "(null)"
177: memid = -2147417030, name = "behaviorUrns", help = "(null)"
178: memid = -2147417029, name = "tagUrn", help = "(null)"
179: memid = -2147417029, name = "tagUrn", help = "(null)"
180: memid = -2147412043, name = "onbeforeeditfocus", help = "(null)"
181: memid = -2147412043, name = "onbeforeeditfocus", help = "(null)"
182: memid = -2147417028, name = "readyStateValue", help = "(null)"
183: memid = -2147417027, name = "getElementsByTagName", help = "(null)"
184: memid = -2147417016, name = "mergeAttributes", help = "(null)"
185: memid = -2147417015, name = "isMultiLine", help = "(null)"
186: memid = -2147417014, name = "canHaveHTML", help = "(null)"
187: memid = -2147412039, name = "onlayoutcomplete", help = "(null)"
188: memid = -2147412039, name = "onlayoutcomplete", help = "(null)"
189: memid = -2147412038, name = "onpage", help = "(null)"
190: memid = -2147412038, name = "onpage", help = "(null)"
191: memid = -2147417012, name = "inflateBlock", help = "(null)"
192: memid = -2147417012, name = "inflateBlock", help = "(null)"
193: memid = -2147412035, name = "onbeforedeactivate", help = "(null)"
194: memid = -2147412035, name = "onbeforedeactivate", help = "(null)"
195: memid = -2147417011, name = "setActive", help = "(null)"
196: memid = -2147412950, name = "contentEditable", help = "(null)"
197: memid = -2147412950, name = "contentEditable", help = "(null)"
198: memid = -2147417010, name = "isContentEditable", help = "(null)"
199: memid = -2147412949, name = "hideFocus", help = "(null)"
200: memid = -2147412949, name = "hideFocus", help = "(null)"
201: memid = -2147418036, name = "disabled", help = "(null)"
202: memid = -2147418036, name = "disabled", help = "(null)"
203: memid = -2147417007, name = "isDisabled", help = "(null)"
204: memid = -2147412034, name = "onmove", help = "(null)"
205: memid = -2147412034, name = "onmove", help = "(null)"
206: memid = -2147412033, name = "oncontrolselect", help = "(null)"
207: memid = -2147412033, name = "oncontrolselect", help = "(null)"
208: memid = -2147417006, name = "FireEvent", help = "(null)"
209: memid = -2147412029, name = "onresizestart", help = "(null)"
210: memid = -2147412029, name = "onresizestart", help = "(null)"
211: memid = -2147412028, name = "onresizeend", help = "(null)"
212: memid = -2147412028, name = "onresizeend", help = "(null)"
213: memid = -2147412031, name = "onmovestart", help = "(null)"
214: memid = -2147412031, name = "onmovestart", help = "(null)"
215: memid = -2147412030, name = "onmoveend", help = "(null)"
216: memid = -2147412030, name = "onmoveend", help = "(null)"
217: memid = -2147412027, name = "onmouseenter", help = "(null)"
218: memid = -2147412027, name = "onmouseenter", help = "(null)"
219: memid = -2147412026, name = "onmouseleave", help = "(null)"
220: memid = -2147412026, name = "onmouseleave", help = "(null)"
221: memid = -2147412025, name = "onactivate", help = "(null)"
222: memid = -2147412025, name = "onactivate", help = "(null)"
223: memid = -2147412024, name = "ondeactivate", help = "(null)"
224: memid = -2147412024, name = "ondeactivate", help = "(null)"
225: memid = -2147417005, name = "dragDrop", help = "(null)"
226: memid = -2147417004, name = "glyphMode", help = "(null)"
227: memid = -2147412036, name = "onmousewheel", help = "(null)"
228: memid = -2147412036, name = "onmousewheel", help = "(null)"
229: memid = -2147417000, name = "normalize", help = "(null)"
230: memid = -2147417003, name = "getAttributeNode", help = "(null)"
231: memid = -2147417002, name = "setAttributeNode", help = "(null)"
232: memid = -2147417001, name = "removeAttributeNode", help = "(null)"
233: memid = -2147412022, name = "onbeforeactivate", help = "(null)"
234: memid = -2147412022, name = "onbeforeactivate", help = "(null)"
235: memid = -2147412021, name = "onfocusin", help = "(null)"
236: memid = -2147412021, name = "onfocusin", help = "(null)"
237: memid = -2147412020, name = "onfocusout", help = "(null)"
238: memid = -2147412020, name = "onfocusout", help = "(null)"
239: memid = -2147417058, name = "uniqueNumber", help = "(null)"
240: memid = -2147417057, name = "uniqueID", help = "(null)"
241: memid = -2147417066, name = "nodeType", help = "(null)"
242: memid = -2147417065, name = "parentNode", help = "(null)"
243: memid = -2147417064, name = "hasChildNodes", help = "(null)"
244: memid = -2147417063, name = "childNodes", help = "(null)"
245: memid = -2147417062, name = "attributes", help = "(null)"
246: memid = -2147417061, name = "insertBefore", help = "(null)"
247: memid = -2147417060, name = "removeChild", help = "(null)"
248: memid = -2147417059, name = "replaceChild", help = "(null)"
249: memid = -2147417051, name = "cloneNode", help = "(null)"
hugeice 2011-08-17
  • 打赏
  • 举报
回复
接口方法表:

0: memid = -2147417611, name = "setAttribute", help = "(null)"
1: memid = -2147417610, name = "getAttribute", help = "(null)"
2: memid = -2147417609, name = "removeAttribute", help = "(null)"
3: memid = -2147417111, name = "className", help = "(null)"
4: memid = -2147417111, name = "className", help = "(null)"
5: memid = -2147417110, name = "id", help = "(null)"
6: memid = -2147417110, name = "id", help = "(null)"
7: memid = -2147417108, name = "tagName", help = "(null)"
8: memid = -2147418104, name = "parentElement", help = "(null)"
9: memid = -2147418038, name = "style", help = "(null)"
10: memid = -2147412099, name = "onhelp", help = "(null)"
11: memid = -2147412099, name = "onhelp", help = "(null)"
12: memid = -2147412104, name = "onclick", help = "(null)"
13: memid = -2147412104, name = "onclick", help = "(null)"
14: memid = -2147412103, name = "ondblclick", help = "(null)"
15: memid = -2147412103, name = "ondblclick", help = "(null)"
16: memid = -2147412107, name = "onkeydown", help = "(null)"
17: memid = -2147412107, name = "onkeydown", help = "(null)"
18: memid = -2147412106, name = "onkeyup", help = "(null)"
19: memid = -2147412106, name = "onkeyup", help = "(null)"
20: memid = -2147412105, name = "onkeypress", help = "(null)"
21: memid = -2147412105, name = "onkeypress", help = "(null)"
22: memid = -2147412111, name = "onmouseout", help = "(null)"
23: memid = -2147412111, name = "onmouseout", help = "(null)"
24: memid = -2147412112, name = "onmouseover", help = "(null)"
25: memid = -2147412112, name = "onmouseover", help = "(null)"
26: memid = -2147412108, name = "onmousemove", help = "(null)"
27: memid = -2147412108, name = "onmousemove", help = "(null)"
28: memid = -2147412110, name = "onmousedown", help = "(null)"
29: memid = -2147412110, name = "onmousedown", help = "(null)"
30: memid = -2147412109, name = "onmouseup", help = "(null)"
31: memid = -2147412109, name = "onmouseup", help = "(null)"
32: memid = -2147417094, name = "document", help = "(null)"
33: memid = -2147418043, name = "title", help = "(null)"
34: memid = -2147418043, name = "title", help = "(null)"
35: memid = -2147413012, name = "language", help = "(null)"
36: memid = -2147413012, name = "language", help = "(null)"
37: memid = -2147412075, name = "onselectstart", help = "(null)"
38: memid = -2147412075, name = "onselectstart", help = "(null)"
39: memid = -2147417093, name = "scrollIntoView", help = "(null)"
40: memid = -2147417092, name = "contains", help = "(null)"
41: memid = -2147417088, name = "sourceIndex", help = "(null)"
42: memid = -2147417087, name = "recordNumber", help = "(null)"
43: memid = -2147413103, name = "lang", help = "(null)"
44: memid = -2147413103, name = "lang", help = "(null)"
45: memid = -2147417104, name = "offsetLeft", help = "(null)"
46: memid = -2147417103, name = "offsetTop", help = "(null)"
47: memid = -2147417102, name = "offsetWidth", help = "(null)"
48: memid = -2147417101, name = "offsetHeight", help = "(null)"
49: memid = -2147417100, name = "offsetParent", help = "(null)"
50: memid = -2147417086, name = "innerHTML", help = "(null)"
51: memid = -2147417086, name = "innerHTML", help = "(null)"
52: memid = -2147417085, name = "innerText", help = "(null)"
53: memid = -2147417085, name = "innerText", help = "(null)"
54: memid = -2147417084, name = "outerHTML", help = "(null)"
55: memid = -2147417084, name = "outerHTML", help = "(null)"
56: memid = -2147417083, name = "outerText", help = "(null)"
57: memid = -2147417083, name = "outerText", help = "(null)"
58: memid = -2147417082, name = "insertAdjacentHTML", help = "(null)"
59: memid = -2147417081, name = "insertAdjacentText", help = "(null)"
60: memid = -2147417080, name = "parentTextEdit", help = "(null)"
61: memid = -2147417078, name = "isTextEdit", help = "(null)"
62: memid = -2147417079, name = "click", help = "(null)"
63: memid = -2147417077, name = "filters", help = "(null)"
64: memid = -2147412077, name = "ondragstart", help = "(null)"
65: memid = -2147412077, name = "ondragstart", help = "(null)"
66: memid = -2147417076, name = "toString", help = "(null)"
67: memid = -2147412091, name = "onbeforeupdate", help = "(null)"
68: memid = -2147412091, name = "onbeforeupdate", help = "(null)"
69: memid = -2147412090, name = "onafterupdate", help = "(null)"
70: memid = -2147412090, name = "onafterupdate", help = "(null)"
71: memid = -2147412074, name = "onerrorupdate", help = "(null)"
72: memid = -2147412074, name = "onerrorupdate", help = "(null)"
73: memid = -2147412094, name = "onrowexit", help = "(null)"
74: memid = -2147412094, name = "onrowexit", help = "(null)"
75: memid = -2147412093, name = "onrowenter", help = "(null)"
76: memid = -2147412093, name = "onrowenter", help = "(null)"
77: memid = -2147412072, name = "ondatasetchanged", help = "(null)"
78: memid = -2147412072, name = "ondatasetchanged", help = "(null)"
79: memid = -2147412071, name = "ondataavailable", help = "(null)"
80: memid = -2147412071, name = "ondataavailable", help = "(null)"
81: memid = -2147412070, name = "ondatasetcomplete", help = "(null)"
82: memid = -2147412070, name = "ondatasetcomplete", help = "(null)"
83: memid = -2147412069, name = "onfilterchange", help = "(null)"
84: memid = -2147412069, name = "onfilterchange", help = "(null)"
85: memid = -2147417075, name = "children", help = "(null)"
86: memid = -2147417074, name = "all", help = "(null)"
87: memid = -2147417073, name = "scopeName", help = "(null)"
88: memid = -2147417072, name = "setCapture", help = "(null)"
89: memid = -2147417071, name = "releaseCapture", help = "(null)"
90: memid = -2147412066, name = "onlosecapture", help = "(null)"
91: memid = -2147412066, name = "onlosecapture", help = "(null)"
92: memid = -2147417070, name = "componentFromPoint", help = "(null)"
93: memid = -2147417069, name = "doScroll", help = "(null)"
94: memid = -2147412081, name = "onscroll", help = "(null)"
95: memid = -2147412081, name = "onscroll", help = "(null)"
96: memid = -2147412063, name = "ondrag", help = "(null)"
97: memid = -2147412063, name = "ondrag", help = "(null)"
98: memid = -2147412062, name = "ondragend", help = "(null)"
99: memid = -2147412062, name = "ondragend", help = "(null)"
hugeice 2011-08-17
  • 打赏
  • 举报
回复
谢谢两位 :)

我已经将参数改为 VARIANT picture,JScript现在可以调用到我的方法了,传递进来的VARIANT是个IDispatch*,但是我不知道如何使用这个IDispatch,用以下代码将类型库中的函数名打出来了,有392个接口函数,但是没有发现能够获取图像数据的方法 :(

那位能够告诉我如何读取传递进来的Image对象的位图数据?


代码:

STDMETHODIMP Cax7dliveplayer::AddSubtitle(BSTR language, BSTR url, LONG index, VARIANT picture)
{
if ( VT_DISPATCH == picture.vt ) {
CComPtr<IDispatch> pIDisp(picture.pdispVal);
UINT ctinfo = 0;
HRESULT hr = pIDisp->GetTypeInfoCount(&ctinfo);
if ( SUCCEEDED(hr) ) {
CComPtr<ITypeInfo> pITypeInfo;
hr = pIDisp->GetTypeInfo(0, LANG_NEUTRAL, &pITypeInfo);
if ( SUCCEEDED(hr) ) {
TYPEATTR* pta;
hr = pITypeInfo->GetTypeAttr(&pta);
if ( SUCCEEDED(hr) ) {
int fun_num = pta->cFuncs;
if ( TKIND_DISPATCH == pta->typekind ) {
for ( int i = 0; i < fun_num; i++ ) {
FUNCDESC* pfd;
hr = pITypeInfo->GetFuncDesc(i, &pfd);
if ( SUCCEEDED(hr) ) {
/*if ( (pfd->wFuncFlags & (FUNCFLAG_FRESTRICTED | FUNCFLAG_FHIDDEN)) == 0 )*/ {
CComBSTR bstr_name, bstr_doc;
hr = pITypeInfo->GetDocumentation(pfd->memid, &bstr_name, &bstr_doc, NULL, NULL);
if ( SUCCEEDED(hr) ) {
JTRACE2(JTRACE_INFO, JL_HIGH, _T("Cax7dliveplayer::AddSubtitle: %d: memid = %d, name = \"%s\", help = \"%s\"\n"),
i, pfd->memid, (LPCTSTR)(_bstr_t)bstr_name, (LPCTSTR)(_bstr_t)bstr_doc);
}
}
pITypeInfo->ReleaseFuncDesc(pfd);
}
}
JTRACE2(JTRACE_INFO, JL_MEDIUM, _T("Cax7dliveplayer::AddSubtitle: ok!\n"));
}
pITypeInfo->ReleaseTypeAttr(pta);
}
}
}
}
return S_FALSE;


maquan 2011-08-17
  • 打赏
  • 举报
回复
看上去是这个 AddSubtitle() 的定义不够科学,对脚本语言不友好,如果定义为 IDispatch *picture 就好多了。


————————————————————————————————
基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)
fishion 2011-08-17
  • 打赏
  • 举报
回复
VARIANT vtTemp;
vtTemp.vt= VT_UNKNOWN 时对应用vtTemp.IUnknown
vtTemp.vt= VT_DISPATCH 时对应用vtTemp.IDispatch
maquan 2011-08-17
  • 打赏
  • 举报
回复
哈哈,又学到新东西了!这个 Image ……

居然真是一个“内置”对象,但奇怪的是竟然查不到关于它的任何资料,我真是笨死了 :(

试了一下,感觉它很像是 <IMG> 对象(属性集合很接近,tagName 就是 'IMG'),但无法确认它是否跟 <IMG> 完全一样。

其实我总觉得 IHTMLElementRender 挺有希望的……

当然,既然“传入 url”的方式能够被接受,这确实是最简单的方法。
hugeice 2011-08-17
  • 打赏
  • 举报
回复
一开始我定义接口参数类型为 IPictureDisp* 只是惯性思维,因为控件的背景属性的类型为 IPictureDisp*,于是我就想当然的以为Javascript传递的图片会是这个类型,但实际情况确实不是这样的!

Image应该是Javascript内置对象,与HTML页面中用<img></img>标签生成的图片对象是一样的,在Javascript中用 new Image;的方式来加载图片可以不显示出来,主要是用来做图片的预加载的。
maquan 2011-08-17
  • 打赏
  • 举报
回复
楼主真是个钻研的人,佩服!

其实主要得看 new Image() 得到的是个什么对象。你最早把接口参数类型定义为 IPictureDisp* picture,是不是说你明确知道得到的是这个类型的对象?但实际情况似乎并不是这样。

所以关键还是看 Image 到底是个什么东西,应该是有源代码的吧?


————————————————————————————————
基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)
hugeice 2011-08-17
  • 打赏
  • 举报
回复
to [maquan]:

传递进来的IDispatch*接口上查询 IPictureDisp 失败,返回 E_NOINTERFACE;

另外,我用从IDispatch接口上得到ITypeInfo接口获取ITypeLib接口,然后将ITypeLib上所有的接口打印出来了,居然有815个条目,其中包含429个Dispatch接口,和另外71个普通接口,其余的都是组件类和结构体、枚举等的定义。
在那71个普通接口中有个接口IHTMLPainter,差MSDN好像是IE用来渲染对象用的,接口方法“Draw”可以在DC上把对象画出来,可惜在传入的IDispatch接口上查询这个接口也失败了!
倒是有一个接口IHTMLElementRender可以查询到,不过调用“DrawToDC”时失败了,看了以下MSDN,这个接口好像是用来打印的。

然后我把所有的接口上的所有函数名打印出来(有3万多行!!),然后搜索“Draw”和“Render”等关键字,找到的函数也都是属于上面两个接口或类似接口中的函数,无奈只好放弃。


现在用 [akirya] 网友说的传入图片URL的方法,在控件中调用OleLoadPicturePath加载图片,可以直接得到IPicture接口,可以正常工作了。
不过一开始就是因为不想自己在控件中去加载图片才想通过Javascript传进来的,没想到这么困难,在VBScript下有一个函数类似OleLoadPicturePath,可以直接得到一个有IPictureDisp接口的对象,可以直接传递给ActiveX控件,不知道为什么在Javascript下没有对应的东西~~



谢谢各位捧场,结贴 :)

maquan 2011-08-17
  • 打赏
  • 举报
回复
你传进来的这个 IDispatch 对象,是 IPictureDisp 对象吗?怎么看上去像是个 DOM 对象……

你可以用 QueryInterface 试一下获取 IPictureDisp *,拿到这个指针后面的应该就好办了。


————————————————————————————————
基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 hugeice 的回复:]

to akirya:

从Javascript往ActiveX中传递图片,参数我应该用什么类型?(我需要在ActiveX中得到图片的位图数据)
[/Quote]
传入图片的url

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧