製品技術情報 (最終更新日:2021/1/26)
- Oracle connector for iOS/Android 2.0
- グリッド幅の設定方法
- インストール時の障害について
- DATE型のカラムで時間が表示されない
- NT4.0でプロパティ・ページが開かない
- vb5セットアップ・ウィザードのvb5dep.ini追加項目
- テーブル・ロックについて
- サーバーに接続できない
- エラー・コード訂正
- DelphiでGetDataEx
- コネクトコントロールは一つで複数のリストボックス
- 中国で開発します。該否判定書はありますか。
- Windows10 64bitでの利用方法。
- Oracle12c以降での利用方法。
- DDFビルダーのインデックス数の上限について
- VB.NETサンプルの参照について
- VE051メッセージのマニュアル記載について
- Pervasive.SQL 4のDDF形式対応について
- Pervasive.SQL 2000 Service Pack1/2b対応について
- Pervasive.SQL 2000i Service Pack3対応について
- Windows10ビルド1803のエラー106について
- VcInBufferCountにイメージ全体サイズ受信しない
- 受信イベントでのVcInBufferCount参照について
- Excelから使いたい
- Exchange Server 2003のPOP接続について
- 開発PCでは動作するがサーバーで動作しない
- VB6用のサンプルについて
- VC++のラップクラスについて
- XP SP2のWindowsファイアウォールについて
- インストールに失敗する
- リモートアクセスとの関係について
- pop3コントロールが本文をファイルする場合の拡張子
- RetieveMessageのパラメータについて
- 分割送信したメールとMicrosoft OutLook97/98
- 文字配列を返すメソッドのパラメータ変更について
- OutLook2000におけるhtmlメールのcid
- APOP対応について
- SMTP AUTH対応について
- Visual C++におけるSMTP AUTH Password
- IIS利用時のShowErrorMessage設定
仮想ディレクトリへのセットアップ
IISのWebサイトへ仮想ディレクトリへセットアップする場合はWebサイトのルートにあるWeb.ConfigにconnectionStringを設定しSystem.Data.OracleClientアセンブルを追加する必要があります。
コンポーネントのurlプロパティへ仮想ディレクトリを含める場合はrawURL=TRUEを指定します。
// obj-c code sample _db.rawURL = TRUE; _db.url = @"http://192.168.0.30/virtuallDir/dbLibServer.asmx";
サーバーへの接続診断方法
サーバーへの接続がうまくいかない場合はverboseプロパティをTRUEに設定して実行するとXcodeのコンソールにIISからのレスポンスデータが表示されます。
Oracleエラーも表示されます。
// obj-c code sample _db.verbose = TRUE; _db.url = @"http://192.168.0.30";
リバースツールが動作しない
ER-Builderの最初のセットアップではVC++ 8.0ランタイムDLLが含まれていませんでした。
VC++ 8.0ランタイムDLLが無いPCではリバースツールが起動でませんでした。
2007/5/16以降のER-BuilderパッケージにはVC++ 8.0ランタイムも
インストールパッケージに含めました。追加されたファイルはmsvcr80.dllとmsvcm80.dllの2ファイルです。
Oracle Instant Clientでの動作について
Oracle Instant Client を利用する場合には接続文字列として以下のように入力します。
//server_name:1521/ORCLserver_nameの部分はIPアドレスを指定することが出来ます。1521はデフォルトポート番号です。
Windows Mobile 5.0対応について
Windows Mobile 5.0は.NET compact framework 2.0および1.0が動作します。(以下CFと略)
CF 1.0をご利用の場合はVBMan Components for RS-232C/CF 5.1をご利用いただけます。
CF 2.0をご利用の場合はVBMan Components for RS-232C/CF 6.0をご利用いただけます。
以下はマイクロソフトの参考ページです。
マイクロソフト参考ページ
Windows Mobile 2003対応について
Windows Mobile 2003は.NET Compact Framework 2.0が動作しますのでVBMan Components for RS-232C/CF 6.0をご利用いただけます。
ファックス通信速度設定について
特定の送り先への送信が失敗するような場合、ファックスモデムと送信先のファックス機の相性や
通信回線のノイズが影響していると思われます。ファックスモデムの通信能力に依存している場合も多く、
ファックスモデムのサポートには以下のような記載があり通信速度を下げることを試すことを記載していることもあります。
オムロン様のモデムサポートページNetMan Fax側での通信速度は初期値14400bps固定ですが以下のような設定をポートオープン後、 SendFax/ReceiveFax実行前に記述していただくことで9600bps通信が可能です。
NmFax1.BitRate = 3
イメージの解像度について
固定した相手先とのファックス通信であれば一度安定して通信できる環境を構築出来れば問題になる
ことは無いですが、不特定多数の相手先とのファックス通信を行う場合には、相手先のファックス機の
能力や回線へのデータ量を減らすために低解像度イメージにてファックス通信をおこなうことをお勧め
いたします。実際にファックス機に低解像度イメージと高解像度イメージを出力して比較していただく
と分かると思いますが、ファックスされたイメージの品質の差はデータ量の差ほどには無いと判断出来ます。
ModemInitStringについて
通常ModemInitStringプロパティには"ATZ"の文字列でも動作しますがデータ量の多い画像ですと
PCとファックスモデムの間でフローコントロールが利かなくなり、ファックス通信が中断するこ
とがあります。Conxiant系のチップセットを使ったファックスモデムをお使いの場合には、
ModemInitStringに"AT&K3"の設定をすることで、ハードウェアフローコントロールが有効に
なり、正常に通信が実行できるようになります。
COM10以上の対応について
シリアルポートCOM10以上をご利用になりたいお客様はサポートにて対応モジュールのご用意が
御座いますのでご連絡いただければと思います。対応修正モジュールはfxeinge.dllとなります。
システムディレクトリに同ファイルを入れ替えていだだくことでCOM10ポート以上でファックス通信が
可能となります。
IIS 6.0でのアップロードファイル上限値設定について
IIS6でアップロードファイルの上限値を変更するには、IISのMetaBase.xmlファイルの設定値を
編集する必要があります。
C:\WINDOWS\system32\inetsrv\MetaBase.xmlファイルのAspMaxRequestEntityAllowedパラメータを変更します。
デフォルト設定ですと以下のように200KBにセットされています。IIS動作中はロックされていて編集できません
ので、IISを停止してから編集します。
AspMaxRequestEntityAllowed="204800"
Extendedクラスの検索条件について
ExtendedクラスのSearchCondプロパティには複数の条件を&または|で連結して指定することが
出来ます。またスペースを含むデータはシングルクォート、ダブルクォート、スラッシュで囲んで
指定することができます。以下はサンプルです。
ex.SearchCond = "@Name = 'John Scofield' & @Age > 40";
VcInBufferCountにイメージ全体サイズが受信できない。
バーコードリーダーからイメージを受信する際にVcInBufferCountにイメージ全体サイズを最初から受信することは通常はありません。
RS-232Cの通信バッファサイズがイメージサイズより小さいのでバーコードリーダーはイメージを複数に分割して送信します。
VcInBufferCountで通信バッファにあるデータをバイナリ受信し複数回繰り返しイメージ全体を受信します。
通常バーコードリーダーのプロトコルはイメージデータ送信前にイメージデータ全体サイズを送る仕様になっていますのでそれを先に得ることでイメージ全体受信完了の判断ができます。
受信イベント内でのVcInBufferCountの参照について。
VcInBufferCountプロパティは参照した時点での受信データバイト数を返します。
受信イベント発生中でも新たにデータを受信する可能性がある場合はVcInBufferCountを受信イベントの先頭で一度だけ参照してそのサイズだけデータを受信して処理するようなコードを描いてください。
複数回受信データサイズが必要なプログラムロジックとなる場合はVcInBufferCountをローカル変数に一旦保持していただくコードで対応をお願いします。
Excelから使いたい
ExcelのVisual Basicからコンポーネントを参照設定してご利用いただくことができます。
サンプルコード>と利用方法ドキュメントをご確認ください。
GAC登録時のエラーについて
Global Assembly CashにCommLib.DLLを gacutil /I コマンドで登録しても「ファイル 'commlib' の DLL 初期化ルーチンが失敗しました」のような
エラーが発生することがあります。解決方法としては gacutil /cdl コマンドを実行してキャッシュを一度クリアしてから、再度gacutil /iにて
CommLib.DLLを登録しなおすことです。gacutil /Iコマンド登録後、パソコンの再起動で正常に動作するようになる場合にも一度 gacutil /cdlを実行
することでパソコンの再起動が必要なくなることも確認できました。
Windows10ビルド1803以降のエラー106について
ポート出力系のメソッドでエラー106が発生することがあります。
Windows 95から20年動作していたコードがWindows10ビルド1803以降でエラーが発生するようになりました。
対応版(有償:ver 6.04, ver 7.01)がありますのでシステムラボまでお問い合わせください。
エクセルから利用できるOCX版も同様でver 4.06以降で対応済みです。
64bit版をWindows Formに設置できない
64Bit CommLib.DLLをWindows Formに置くことができません。理由はVisual Studio IDEが32bitであることが原因と思います。
回避方法はプロジェクトからCommLib.DLLを参照してVisual Studioフォームビルダーが生成するコードと同等のコーディングしていただくか、
32Bit CommLib.DLLでアプリケーションを開発していただきビルド時に64Bit CommLib.DLLに差し替えてビルドしていただく方法になります。
本件はCommLib.DLL はManaged C++で開発されているため、Any CPU対応ができないMicrosoft仕様に由来する制限となります。
まことに申し訳ありませんがご了承ください。
メジャーエラーコード124について
シリアルラインがエラー状態にあります。マイナーエラーコードの意味は以下になります。
1 = 受信バッファオーバーフロー
2 = バッファーオーバーラン
4 = パリティエラー
8 = フレーミングエラー
16 = ブレーク状態検知
上記フレーミングエラー時の理由としては以下です。
- ボーレートの不一致
- シリアルケーブルが長い (電圧不足)
- ケーブルへノイズの混入
またUseOldInitMetohdの設定をFalse設定とするとフレーミングエラーが解消するPC機種があります。
1 = 受信バッファオーバーフロー
2 = バッファーオーバーラン
4 = パリティエラー
8 = フレーミングエラー
16 = ブレーク状態検知
上記フレーミングエラー時の理由としては以下です。
- ボーレートの不一致
- シリアルケーブルが長い (電圧不足)
- ケーブルへノイズの混入
またUseOldInitMetohdの設定をFalse設定とするとフレーミングエラーが解消するPC機種があります。
Microsoft Exchange Server 2003のPOPサーバー接続について
Microsoft Exchange Server 2003のPOPサーバー接続でRetrieveMailメソッドが動作しない場合があります。
サポートでは動作しないExchange POP3サーバーのバージョンは6.5.6499と確認しています。
対応版をサポートにて配布しておりますので該当のお客様はサポートまでご連絡ください。
新しいMailLib.DLLのバージョンは5.0.0.5となります。
開発PCでは動作するがサーバーで動作しない
VS 2005開発環境がインストールされている環境では問題なく動作しても、.NET framework 2.0
のみインストールされたサーバー環境では「このアプリケーションの構成が正しくないため、
アプリケーションを開始できませんでした。」などのエラーが発生することがあります。
メールコンポーネント(MailLib.DLL)はManaged C++で記述されMicorosft Visual C++ 8.0 SP1で ビルドされているため、VC++8.0のランタイムをあらかじめインストールしていただく必要があります。
お手数ですがMicrosoft Visual C++ 2005 SP1 再頒布可能パッケージ (x86)を ダウンロードし、インストールしていただきますようお願いいたします。
メールコンポーネント(MailLib.DLL)はManaged C++で記述されMicorosft Visual C++ 8.0 SP1で ビルドされているため、VC++8.0のランタイムをあらかじめインストールしていただく必要があります。
お手数ですがMicrosoft Visual C++ 2005 SP1 再頒布可能パッケージ (x86)を ダウンロードし、インストールしていただきますようお願いいたします。
VB6用サンプルについて
VB6用のサンプルはインストール後のメニューには登録されませんが、以下の
フォルダーに保存されています。
c:\program files\techknowledge\Net Man Controls for Mail\samples\vbまた、SmtpSmp.exeを実行して接続すると例外が発生することがありますが、 原因はVB6のサービスパックレベルの違いが原因と思われます。以下に回避 方法を示します。(コントロールの張りなおしと再コンパイルです)
- SmtpSmp.vbpをプロジェクトをVB6で開く
- frmConnectを開く。
- SMTPコントロールをクリックして削除キーを押しSMTPコントロールを削除。
- ツールボックスから再度SMTPコントロールをフォームに配置。
- SMTPコントロールのオブジェクト名をSMTP1に変更。
- 再コンパイルおよび実行。
VC++ラップクラスについて
Visual C++のMFCアプリケーションからNetMan Controls for Mailをご利用になる場合に
はVisual C++がラップクラスを自動生成しますが、hidden属性を持つプロパティについて
はアクセサーが生成されないことや、全メソッド/プロパティについて生成されないことが
あります。(VC++のバージョンによります)Smtp/Popについてはすべてのプロパティ、メソッド
について記述したラップクラスをダウンロードページにご用意しましたのでご利用ください。
XP SP2のWindowsファイアウォールについて
Winodws XP SP2のWindowsファイアウォールでSMTPポートを許可し、NetMan SMTP
コントロールを利用している実行ファイルを登録してもSMTPの接続に10秒以上時間が
掛かる場合があります。この現象はLAN経由でSMTPサーバーに接続する場合には問題
なく、VPN接続やリモート接続時経由時のみ認められる現象のようです。またPOP3/IMAP4
ではこのような現象は発生しませんでした。現状の対策方法は接続時間がかかるのを
我慢していただくかWindowsファイアウォールを無効にすることになります。
マイクロソフト社より対策情報等得ることが出来ましたら再度掲載いたします。
インストールに失敗する
Visual Studio 2005はインストールされていてもVC++を除外してインストールされている開発環境へ
インストールする場合にインストールに失敗することがあります。
メールコンポーネント(nmMail.DLL)はMicorosft Visual C++ 8.0 SP1でビルドされているため、VC++8.0の ランタイムをあらかじめインストールしていただく必要があります。
お手数ですがMicrosoft Visual C++ 2005 SP1 再頒布可能パッケージ (x86)を ダウンロードし、インストールしていただきますようお願いいたします。
メールコンポーネント(nmMail.DLL)はMicorosft Visual C++ 8.0 SP1でビルドされているため、VC++8.0の ランタイムをあらかじめインストールしていただく必要があります。
お手数ですがMicrosoft Visual C++ 2005 SP1 再頒布可能パッケージ (x86)を ダウンロードし、インストールしていただきますようお願いいたします。
VB.NETサンプルの参照について
VB.NETやC#サンプルをVisual Studio.NETで開くとコントロールへの参照が出来ない環境があるようです。
多少面倒ですが以下の手順で参照を復帰できます。
多少面倒ですが以下の手順で参照を復帰できます。
- サンプルファイルのバックアップを取ります。(別フォルダにコピーしてください)
- VB.NETのサンプルVS.NETで開きます。
- ソリューション・エクスプローラの参照からAxcVBMBTRLib,VBMBTRLibを削除します。
- frmDeptEntryフォームを開き、VBMBtrコントロールをフォームに張ります。 (この状態でAxVBMBTRLib,VBMBTRLibへの参照が正常であることを確認してください)
- プロジェクトを保存してVS.NETを終了させます。
- 手順1で保存しておいたファイルからfrmDeptEntry.vbとfrmDeptEntry.resxファイルを リストアします。(samples\vb.net\DeptSampleフォルダーへの上書き)
- 再度VB.NETでサンプルプロジェクトを開きます。参照出来ていることを確認します。
DDFビルダーのインデックス数の上限について
DDFに定義できるインデックス数119はBtrieve APIの仕様に由来した上限値です。
DDFビルダーで上限を設定している訳ではなくActian ZEN (PSQL V13)でも変更はありません。
Actian ZENのマニュアル記載をご確認ください。
グリッド幅の設定方法
VBMan ActiveX Controls for OracleのグリッドのプロパティはMS Gridコンパチです。
以下のようなコードでグリッドの幅やFixエリアに表示文字列を設定することができます。
Private Sub Form_Load() 'カラムの幅を設定 VBMOraGrid1.ColWidth(1) = 1200 VBMOraGrid1.ColWidth(2) = 800 'カラムのヘッダーを設定 VBMOraGrid1.Col = 1 VBMOraGrid1.Row = 0 ' Fixグリッドを指定 VBMOraGrid1.Text = "商品名" ' カラムヘッダー指定 End Sub
インストール時の障害について
VBMan ActiveX Controls for Oracle 1.0等,Microsoft Foundation Class 4.2の実行時ライブラリを必要とする製品のインストールが正常に終了しない場合があります。
多くの場合、OLEAUT32.DLLのバージョンが古いことが原因です。MFC 4.2のDLLはOLEAUT32.DLLバージョン2.20.4049以降がインストールされていることが必要となります。
バージョンの確認方法はマイクロソフトシステム情報(msinfo32.exe)でシステムDLLを選択すると表示されます。このバージョン以降のDLLは、
Visual Basic 5.0,Visual C++ 5.0,インターネット・エクスプローラー 3.02J等をインストールするとシステムにインストールされます。
NT 3.51をお使いの場合はService Pack5をインストールすることで解決できます。V
BMan ActiveX Control for Oracle 2.0はATLで作成されておりMFC42への依存はありませんので上記は該当しません。
DATE型のカラムで時間が表示されない
デフォルトのDATE型のカラムに対するフォーマットを変更してください。VBManで変更する場合は以下のようなコードになります。
Dim rc As Integer rc = VBMOraCon1.ExecSQL("ALTER SESSION SET NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI'") If rc <> 0 Then MsgBox VBMOraCon1.ErrorText End If
NT 4.0でプロパティ・ページが開かない
NT4.0環境でVBMan ActiveX Controls for Oracleのプロパティ・ページでカラー・ストック・プロパティ・ページを参照するものが開かない場合があります。
理由はmfc40.dllがレジストリに登録されていない場合がある為です。VBMan ActiveX Controls for Oracleはmfc42.dllをランタイムとして動作しますが、
カラー・プロパティ・ページはmfc42.dllではなくmfc40.dllに存在することが原因のようです。(マイクロソフトの不具合と思います)
弊社ではインストール直後のNT 4.0にService Pack3,Visual Basic 5.0にService Pack2を入れた状態で上記に不具合が確認できました。
以下のコマンドでmfc40.dllをレジストリに登録したら解決できました。
regsvr32 c:\winnt\system32\mfc40.dll
vb5セットアップ・ウィザードのvb5dep.ini追加項目
vb5セット・アップ・ウィザードでVBMan ActiveX Control for Oracle 1.0の依存情報は以下となります。
vb5インストール・ディレクトリの下のsetupkit/kitfil32/vb5dep.iniファイルに追加してください。
MFC42,MSVCRT,MFC42LOCについてすでに情報が追加されている場合はVBMORA32.OCX,DIBAPI32.DLLに関する部分のみ追加してください。
この状態で作成したセットアップ・ファイルはOracleクライアント環境が別途整備されているパソコンでセットアップ可能となります。
VBMan ActiveX Control for Oracle 2.0はMFC42への依存はありません。vb5dep.iniの記載方法はマニュアル183ページをご参照ください。
[VBMORA32.OCX] Register=$(DLLSelfRegister) Dest=$(WINSYSPATH) Uses1=DIBAPI32.DLL Uses2=MFC42.DLL Uses3=MSVCRT.DLL [DIBAPI32.DLL] Dest=$(WinSysPath) [MFC42.DLL] Register=$(DLLSelfRegister) Dest=$(WinSysPath) Uses1=MFC42LOC.DLL [MSVCRT.DLL] Dest=$(WinSysPath) [MFC42LOC.DLL] Dest=$(WinSysPath)
テーブル・ロックについて
コネクト・コントロールのExecSQLメソッドを使って lock table コマンドを実行する場合、
AutoCommitプロパティをFalseに設定しないと実際はテーブルにロックがかからないのでご注意ください。
サーバーに接続できない
OCIW32.DLLが複数のディレクトリに存在するような場合、サーバーに接続できない状況になることがあります。
Oracleインストール・ディレクトリのbinにのみOCIW32.DLLが存在するようにファイルを整理してください。
Oracleを再インストールする場合にWindows NTではMS DTCがOCIW32.DLLを利用している場合もありますので、
そのような場合はMS DTCサービスを一旦止めてOracleの再インストールを実行してください。
エラー・コード訂正
VBMan ActiveX Controls for Oracle 2.0のマニュアル202ページに訂正があります。
シンボル | 誤 | 正 |
---|---|---|
ERR_ALREADY_IN_QUERY | 207 | 208 |
ERR_NOT_IN_QUERY | 208 | 209 |
DelphiからGetDataEx
以下はDelphiでGetDataExメソッドのコード例です。
procedure TForm1.Button2Click(Sender: TObject); var rc: smallint; sql: Widestring; v: OleVariant; vData: OleVariant; i: smallint; numOfRecords: LongInt; begin numOfRecords := 20; v := numOfRecords; sql := 'select empno,ename from Emp'; rc := db.QueryEx(sql,v); if rc <> 0 then Application.MessageBox('error','sample',MB_OK); rc := db.FetchEx(v); if (rc = 0) or (rc = 100) then begin vData := VarArrayCreate([0,1,0,20],varOleStr); rc := db.GetRowDataEx(vData); if rc <> 0 then Writeln(rc) else begin for i := 0 to v - 1 do begin write(vData[0,i]); write('-'); writeln(vData[1,i]); end; end; end; rc := db.EndQueryEx(); end;
コネクトコントロールは一つで複数のリストボックス
フォームにはコネクトコントロールを一つだけ設定して複数のリスト・ボックスにマスター参照データを表示したい場合があります。
コネクト・コントロールを複数置かないでもForm_Load等に以下のようなコードを記載することで対象テーブルを切り替えてデータを表示することが出来ます。
Private Sub Form_Load() db.TableName = "EMP" With VBMOraList1 .ListConnect = "db" .ListFields = "empno,ename" .Refresh End With db.TableName = "DEPT" With VBMOraList2 .ListConnect = "db" .ListFields = "deptno,dname" .Refresh End With End Sub
中国で開発します。該否判定書はありますか。
該否判定書ございます。システム・ラボ (tel:03-5809-0893)にて発行しますのでお手数ですがご連絡をお願いします。
(1〜15項非該当,16項のみ該当)
Windows10 64bitでの利用。
Oracle instant client 32bit をインストールしてご利用ください。
Instant ClientダウンロードページにMicrosoft Visual Studio Redist へのリンクがありますので、そちらのページから該当するRedistの32bit販もインストールしてください。
Oracle 12c以降での利用。
Oracle 12c〜19cでご利用の場合は以下のOCI対応設定が必要となります。
1. インスタンスへSEC_CASE_SENSITIVE_LOGON=FALSE 設定 (alter system set sec_case_sensitive_logon=false) 2. sqlnet.ora の SQLNET.ALLOWED_LOGON_VERSION_SERVER=8 設定 3. 接続するアカウント PASSWORD_VERSIONS への10G 設定。 (確認SQL=> SELECT USERNAME,PASSWORD_VERSIONS FROM DBA_USERS;)
VE051メッセージのマニュアル記載について
VBMan ActiveX Controls for Btrieve 3.0のマニュアル198ページのVE051メッセージの解説にあるsswin.dllはsp32w.dllの間違いです。
Pervasive.SQL 4のDDF形式対応について
Pervasive.SQL 4ではDDFの形式が変更になりましたので対応いたしました。(99/01/30)
対応モジュールはこちらからダウンロード可能です。 対応モジュールの配布はVBMan ActiveX Control for Btrieve 3.00用のみとなりますのであらかじめご了承ください。
対応モジュールはこちらからダウンロード可能です。 対応モジュールの配布はVBMan ActiveX Control for Btrieve 3.00用のみとなりますのであらかじめご了承ください。
Pervasive.SQL 2000 Service Pack sp1/sp2b対応について
Pervasive.SQL 2000 Service Pack1以降ではBtrieve APIのチェック仕様が変更になっているので対応いたしました。(2000/11/08)
対応モジュールはこちらからダウンロード可能です。変更モジュールはvbmbt300.ocxとddfio300.dllになります。
対応モジュールの配布はVBMan ActiveX Control for Btrieve 3.0x用のみとなりますのであらかじめご了承ください。
Pervasive.SQL 2000 Service Pack sp3対応について
Pervasive.SQL 2000 SP3にて問題なくVBMan ActiveX Controls for Btrieve 3.02が動作することを確認済みです。
(pervaisve software/agtech社のご厚意によりsp3出荷前からテストさせていただいきました)
リモート・アクセスとの関係について
NetMan Mail/OCX32でRAS接続はサポートされないかとのご質問が多いですが残念ながらRASとwinsockは別のプロトコル層にありNetMan Mail/OCX32が制御すべきものではありません。
NetMan Mail/OCX32はwinsock APIを利用するtcp/ipプロトコル・レベルのアプリケーションです。
ダイアル・アップ・ネットワークを制御するActiveXコントロールとしては弊社のNetMan ActiveX Control for RASをご利用ください。
pop3コントロールが本文をファイルする場合の拡張子
pop3コントロールがメール本文をファイルに保存する場合にはメール・ヘダーのContent-type指定をレジストリから検索してファイルの拡張子を決定します。
HKEY_CLASSES_ROOT直下のドットから始まる拡張子レジストリからContent Typeを検索して合致するものをファイル拡張子としています。
RetrieveMessageのパラメータについて
NetMan for Mail/OCX32のマニュアル42ページ記載の上記メソッドの第2パラメータのデータ型Integerは誤りでVariant型になります。
43ページの同サンプルでは同様にMimeという変数はBooleanではなくVariantで宣言する必要があります。
分割送信したメールとMicrosoft OutLook97/98について
SmtpコントロールにおいてMessagePartialプロパティを1に設定して分割送信したメールをMicrosoft OutLook97/98で受信すると、
画像ファイル等を送った場合にも拡張子.txtのファイルが複数受信した状態になります。Microsoft OutLook97/98が分割された
メールに対応していないことが原因です。Microsoft OutLook2000では分割したメールに対応しているのでこの問題は発生しません。
文字配列を返すメソッドのパラメータ変更について
NetMan ActiveX Controls for Mail ver 2.0のPop3コントロールではASPサポートのために従来のバージョンではBSTR型の配列を
返していたメソッドにつきましてはVARIANT型の配列を返すように変更になりました。
この変更はVisual Basicをホスト言語としてアプリケーションを開発されている場合にはコードの変更は必要ありませんが
Visual C++をお使いの場合には若干のコード変更が必要になります。
サンプル・コードはこちらからダウンロードできますのでご参照ください。
OutLook2000におけるhtmlメールのcid
本文にイメージを指定する場合cid(content-id)の指定が必須となりますが、OutLook2000の場合、
タグ中のcidを小文字で記述しないと、イメージが表示できないようです。
<img src="CID:1234"> 駄目です。
<img src="cid:1234"> 大丈夫です。
APOP対応について
マイナーバージョン・アップ(version 2.04)でAPOPに対応いたしました。こちらからダウンロード可能です。
APOPと通常のPOPは自動的に判断して接続いたします。
SMTP AUTH対応について
マイナーバージョン・アップ(version 2.04)でSMTP AUTHに対応いたしました。こちらからダウンロード可能です。
SmtpコントロールにはUserID/Passwordプロパティが新たに追加になりました。詳細はpdfマニュアルをご参照ください。
Visual C++におけるSMTP AUTH Password
Visual C++ではhidden属性を持つプロパティについてはラッパークラスが作成されませんのでVisual C++でSMTP AUTHを使う場合には
デフォルトで生成されるsmtp.h, smtp.cppに以下のコードを追加してPasswordプロパティを設定する必要があります。
// add to smtp.h CString GetPassword(); void SetPassword(LPCTSTR lpszNewValue); // add to smtp.cpp CString CSmtp::GetPassword() { CString result; InvokeHelper(0x2c, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL); return result; } void CSmtp::SetPassword(LPCTSTR lpszNewValue) { static BYTE parms[] = VTS_BSTR; InvokeHelper(0x2c, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,lpzNewValue); }
IIS利用時のShowErrorMessage設定
IISでNetMan ActiveX Controls for Mailを利用する場合はIISがMesageBoxの表示を禁止しているため、
ShowErrorMessageプロパティは常に値0を設定しなければなりません。この値を設定しない場合はたとえば
Connect時等にはハングしたように見える場合があります。(実際はクライアントのブラウザーのタイムアウトで終了になります)