【OLE】オートメーション総合スレ【ActiveX】

このエントリーをはてなブックマークに追加
501デフォルトの名無しさん:2009/01/03(土) 21:50:20
Set tlb=CreateObject("TLI.TLIApplication")
Set t=tlb.TypeLibInfoFromFile("C:\winnt\system32\dcomext.dll").TypeInfos
on error resume next
for i=1 to t.Count
WScript.Echo "========"
WScript.Echo t(i).Name
Set m=t(i).Members
for j=1 to m.Count
WScript.Echo " " & m(j).Name
next
next
502デフォルトの名無しさん:2009/01/03(土) 22:05:32
Const acSysCmdAccessDir = 9 'As Long
Dim tl 'As TLI.TypeLibInfo
Dim eif 'As TLI.InterfaceInfo
Dim em 'As TLI.MemberInfo
idx = 0
Set tl = CreateObject("TLI.TLIApplication")
Set t = tl.TypeLibInfoFromFile(CreateObject("Access.Application").SysCmd(acSysCmdAccessDir) & "msacc9.olb")
'DoCmdはインターフェース(クラスではない)
for each eif In t.Interfaces
if eif.Name = "DoCmd" then
for each em in eif.Members
'使用できない隠しコマンド?は省く
if em.AttributeMask = 0 then
WScript.Echo em.Name
end if
next
exit for
end if
next
Set t = Nothing
Set tl = Nothing
503デフォルトの名無しさん:2009/01/03(土) 22:18:50
504デフォルトの名無しさん:2009/01/03(土) 23:14:39
505デフォルトの名無しさん:2009/01/04(日) 00:18:54
Function GetTypeName(TliVarType)
Select Case TliVarType
Case 8192 : sTemp = "Array"
Case 70 : sTemp = "Object"
Case 11 : sTemp = "Boolean"
Case 8 : sTemp = "String"
Case Else
GetTypeName=""
Exit Function
End Select
GetTypeName = " As " & sTemp
End Function
506デフォルトの名無しさん:2009/01/04(日) 00:19:35
Set tlb = WScript.CreateObject("TLI.TLIApplication")
Set t = tlb.TypeLibInfoFromFile(CreateObject("Access.Application").SysCmd(acSysCmdAccessDir) & "msacc9.olb")
on error resume next
for each o in t.TypeInfos
s = ""
for each m in o.Members
s = s & m.Name & ";" & o.Name & "." & m.Name & "("
param = ""
for each p in m.Parameters
Set v = p.VarTypeInfo
s = GetTypeName(v.VarType)
if param = "" then
if p.Optional then
param = param & "[" & p.Name & s & "]"
else
param = param & p.Name & s
end if
else
if p.Optional then
param = param & "[, " & p.Name & s & "]"
else
param = param & ", " & p.Name & s
end if
end if
next
s = s & param & ")" & GetTypeName(m.ReturnType) & ";" & m.HelpString & vbCrLf
next
WScript.Echo s
next
507デフォルトの名無しさん:2009/01/04(日) 09:31:02
>>501-506
いただきました
ありがとうございます
508デフォルトの名無しさん:2009/02/09(月) 04:54:31
kaso
509デフォルトの名無しさん:2009/02/09(月) 16:15:46
chinko
510デフォルトの名無しさん:2009/06/19(金) 23:03:45
ActiveXコントロールからAfxThrowOleDispatchExceptionで、
VB6.0のフォームに例外を通知したとき、

オートメーションエラーのエラーコードとエラーディスクリプションになってしまうのですが、
AfxThrowOleDispatchExceptionのパラメータで設定した
エラーコード、エラーの説明は、どのようにしたら参照できるのでしょうか?

どなたかご存知の方教えて下さい。
511デフォルトの名無しさん:2009/06/22(月) 22:31:31
Visual Studio 2008のMFCでダイアログにHTML表示させたいので、
ActiveXのMicrosoft web browser貼り付けて、メンバ変数にして
Navigateしました。

ここまではちゃんと表示されてOKです。

次に、ブラウザ上で右クリで出るポップアップを出せないように
しようと思って、メンバ変数にしたやつのウインドウプロシージャーを

取り替えて(サブクラス化)WM_RBUTTONUPを捕まえようとしたのですが、
WM_RBUTTONUPが何故か来ません(他のメッセージ(WM_SIZEとか)は来ます)

当然、右クリするとポップが表示されてしまいます。

何かご存知の方いませんか?
512デフォルトの名無しさん:2009/06/23(火) 00:12:56
なんでもかんでもサブクラス化で解決しようとするな。
IDocHostUIHandler::ShowContextMenuつーのがちゃんと用意されとるわ
513511:2009/06/23(火) 16:42:03
ナイスなヒントに多謝!
514デフォルトの名無しさん:2009/06/29(月) 14:03:25
ActiveXコントロールにドラッグ&ドロップして、ドロップされたファイルを処理したいのですが、
htmlに貼り付けてブラウザでそこにドロップすると、ブラウザ側にドロップされちゃうのです。
とりあえず画像ファイルをコントロールに表示する予定なのですが、jpgとかを落とすと、
それがブラウザにドロップした事になって表示されちゃいます。
WM_DROPFILESのハンドラも、DragAcceptFiles()も立てています。
コントロールにドロップされるようにするにはどうすれば良いでしょうか?
515デフォルトの名無しさん:2009/06/30(火) 00:49:23
HTAにしたら?
516デフォルトの名無しさん:2009/06/30(火) 09:55:32
ありがとうございます。
HTAにしても同じでした..orz

517デフォルトの名無しさん:2009/06/30(火) 15:15:10
.RegisterAsDropTarget=False
518デフォルトの名無しさん:2009/07/01(水) 19:04:43
>>517
ありがとうございます。
調べてみます。
519デフォルトの名無しさん:2009/07/22(水) 13:35:30
>>518
できた?
520デフォルトの名無しさん:2009/07/28(火) 15:04:52
ActiveXでCoCreateInstanceで作成したインスタンスを
使ってWebの画面を画像化しようとしているのですが
IEを2つ起動している状態で2個目のIEでCoCreateInstanceをすると
なぜか1個目のIEに対してインスタンスを生成している様で
上手くいきませんどなたかこんな現象をご存知の方がいればお教えください。
521デフォルトの名無しさん:2009/07/31(金) 23:49:15
JavaScriptでScripting.FileSystemObjectを生成しようとすると
モジュールが見つかりません。
と出るのってどうしたら直るんですか?
522デフォルトの名無しさん:2009/08/01(土) 00:14:33
モジュールを入れる
523521:2009/08/02(日) 21:34:53
>>522
その方法が検索してもどうしても見つからないんです・・
524デフォルトの名無しさん:2009/08/03(月) 14:19:35
c:\windows\system32\scrrun.dll
525521:2009/08/03(月) 15:12:25
>>524
どうやって入れるのか?と思いましたがとりあえずregsvr32してみました。
そしたらエラー出なくなりました!ありがとうございました
526516:2009/08/04(火) 17:02:04
>>519
すまんす、レスが遅れて。
まで出来てないです。
RegisterAsDropTarget=False ってのは、IEのコントロールか何かの設定ですか?
今作っているActiveXを、htmlの<object>タグでCLSID指定してやって動かしてます。
それで自作のActiveXにドラッグ&ドロップしたいのですが、ブラウザ側にドロップされちゃいます。
527デフォルトの名無しさん:2009/08/05(水) 13:30:14
>>526
IDropTargetを実装してRegisterDragDrop()を呼ぶ。

ファイル名が取れればいいだけだからこんな素の方法は嫌だ
ってことかもしれんが、まぁ一方法として。
528デフォルトの名無しさん:2009/08/05(水) 14:52:27
>>526
http://www5.plala.or.jp/atata/com/chap7.html
これをまんま埋め込んだらできたよ
529デフォルトの名無しさん:2009/08/10(月) 01:26:57
ActiveXって現役の技術なの?古いイメージがあるんだけど、代替技術は存在しない?

今までMS系の技術なんて見向きもしなかったんだけど、
今度、VB6.0で動いていたアプリをIE向けのWebアプリに作り替えることになって、
ActiveXコントロールに替わる技術なんてあるんだっけ?と思って質問してみました。
ちなみに既存のVB6アプリでどんなActiveXコンポーネントを使っているのかはまだ不明。
判明するのは3か月以上先。

そもそもActiveXがよくわかっていなくて、
ActiveXの書籍は古いものばっかりだし、この技術ってレガシーコンポーネントを再利用するとき以外で用途あるの?
ローカルリソースを扱うなら必須の技術?

まぁ、先手を打って、勉強しておきたいっていうだけ。
530デフォルトの名無しさん:2009/08/10(月) 04:20:33
まだまだ現役なんじゃない?
代替技術もないんじゃない?
目的達成のための別の技術があるというだけで。
531デフォルトの名無しさん:2009/08/10(月) 15:44:45
FlashもActiveXコンポーネントだよね?
532デフォルトの名無しさん:2009/08/10(月) 17:31:32
許されるのは、FlashとAcroabat Readerのみ。
他はウィルス扱いw
533デフォルトの名無しさん:2009/08/12(水) 13:33:59
>>526
できた?
534デフォルトの名無しさん:2009/08/14(金) 02:04:44
>>530
なるほど
結局は、どんな手段で目的を解決するか、ですね。
選択の幅は広い方がいいんで、勉強してみる
Windowsの仕組みを知るいい機会だし
535this.is.a.tor.exit.router.www.torproject.org:2009/08/17(月) 17:39:59
Q. 自動保守#K9K?_D[L とは一体何なのか?
A. 外部サイトへの突撃大好きな真性厨房

韓国突撃でお馴染みの自動保守
最近は自動焼人 ★として2ちゃんねるのボランティアにも精を出す日々
だがそんな彼にも、人間らしい部分はあったのだ…

名言集
『アパッチ砲はワシが作った』
『お前が規制系キャップ取れるか審査してやるよ』
『いつもサボってばかりのキャップがウゼえ』
『俺、100人規模の集団サイバーテロの主犯だったこともあるんだぜ』
『俺の経歴カックイイだろ?』

最近のニュース
 8月15日の韓国突撃の際に歴史的大敗を喫する。ラジオでの敗戦宣言のときに声が震えていた
 本人は体調不良と言っているが…


----------------------------------------------
この自動焼人 ★メールマガジンの配信停止をご希望される方は
http://qb5.2ch.net/test/read.cgi/sec2chd/1250169591/
にて自動焼人 ★までご連絡ください
536デフォルトの名無しさん:2009/08/20(木) 13:45:04
ちょっと質問いいかな?
VC++6.0でMFC ActiveX ControlWizardを開くと
最初に、プロジェクトに含まれるコントロールの数を聞かれるよね?
ここでコントロール数を2個にして作成するActiveXコントロールと同等のものを
.net2005で作成できる?
ActiveX今まで殆ど触った事なくて、どんな語から調べていけばいいのかわからない状態なんだ…
537デフォルトの名無しさん:2009/11/24(火) 18:22:43
OCXをCABファイルからインストールさせているのですが
64bitのIEでは、失敗します。
64bit用のINFファイルの書き方とかあるのでしょうか?
538デフォルトの名無しさん:2009/11/26(木) 20:57:47
>>537
問題ない。誰も64ビット版IEなんて使っていないから気にするな。
ところで、そのOCXは64ビットで作っている?
539デフォルトの名無しさん:2009/11/27(金) 14:58:43
OCXは64ビットで作っていません
だからダメなんでしょうか?

64ビットで作って試してみます。
540デフォルトの名無しさん:2009/12/02(水) 20:44:11
C#でOfficeオートメーションを使う仕事を割り振られたのですが、
ネットにあまり情報が落ちてないので、どこから勉強していいか解りません。

何か良い書籍があったら教えてください。
541デフォルトの名無しさん:2009/12/02(水) 21:27:23
オフィスオートメーション 【OA】

オフィスオートメーションとは、コピー機やFAX、コンピュータなどの情報機器を用いて、事務作業を効率化すること。


>>540
残念、微妙にスレ違いのようだ。
542デフォルトの名無しさん:2009/12/02(水) 21:50:55
>>540-541
OfficeとはMicrosoft Officeのことで、WordとかExcelの操作かもしれないではないか。
もし、そうだったらまずはVisual Studio Tools for Office関係を調べればいいと思う。
543デフォルトの名無しさん:2010/01/08(金) 09:55:39
Windows2003 Office2003環境です。

ローカルサービスから
using Excel = Microsoft.Office.Interop.Excel;

Excel.Application app =new Excel.APplucation();
Excel.Workbook wbook;

wbook=(Excel.Workbook)(app.Workbooks.Open(filepath,省略,省略…省略));
wbook.PrintOut(省略,省略,省略,省略,PrinterName,省略,省略,省略);

をコーディングしていますが、プリンタへのスプールがスプール中で動作が停止してしまいます。
同様のコーディングをWord,PowerPointにて行ってますが、同様です。

Windows2008 64bit版ではメモリの要領不足とエラーが出ます。

動作が正常に行かない理由ってわかりますか?
544デフォルトの名無しさん:2010/02/15(月) 09:03:15
age
545デフォルトの名無しさん:2010/03/01(月) 09:42:17
CでIEを利用して作っているウェブブラウザで
ブラウザのダブルクリック時の挙動を変えたいんですが
IHTMLDocument2のポインタを取得して
put_ondblclickで自前の関数を登録しようとして
ここで渡す自前の関数はどう宣言して渡せばいいんでしょうか?
546デフォルトの名無しさん:2010/03/17(水) 10:34:20
>>537-539
だいぶ前の話で恐縮ですが
64bitのOCXを作れば、64bit版IEでも動作しました。
ありがとうございます。
547デフォルトの名無しさん:2010/03/17(水) 18:48:26
C++で ActiveXコントロールを作成しています。
また、この ActiveX内から
DLL(VB.NET)の関数を呼んだりしています。

ここで質問なのですが
VB で RaiseEventしたイベントを、
C++の方で捕まえる方法はありますか?
548デフォルトの名無しさん:2010/07/12(月) 10:56:40
MFCでActiveXコントロールを作って、
ウィザードでプロパティを追加して、
PX_Hogeを追加して、
IEから<OBJECT><PARAM 〜></object>で読み込ませると・・・

PX_Hogeで指定した変数には値が設定されるんだが、
ウィザードで生成された関数は呼び出されない。
これってこういうもの? ちなみにMSVC2005。
549548:2010/07/12(月) 11:31:04
とりあえず解決した。
IPersistPropertyBag経由ではDoPropExchangeしか呼ばれない、
メソッド経由で呼ばれたときはウィザードが生成した関数しか呼ばれない、
でいいのかな。

仕方ないんで、DoPropExchangeの中で、pPX->IsLoding()だったら、
ウィザードが生成したOn〜Changedをごにょごにょと呼ぶことにした。
これが普通なのかしらん?
550デフォルトの名無しさん
ふぅ