VB6でビルドされたDLLとOCXコントロールを含むアドインがあります。それぞれは独立しています。つまり、アドインはAddin.DLLとAddin.OCXで構成されています。アドインは、OutlookのIPM.Appointmentフォームから構築されたカスタムフォームを使用します。 OFTファイルとしてユーザーのマシンに展開され、アドインの最初のOnConnectionでPresonフォームライブラリに発行されます。ActiveXコントロールが1つのオフ状態でスタックされたフォームを含むアドインフォーム
私は私のAppointmentItem書き込みとのPropertyChangeクラスに次のようなコードを追加するために私を必要な状態オフ1で立ち往生している形、との問題を抱えていた。
Private Sub AppointmentItem_PropertyChange(ByVal name As String)
On Error GoTo ErrorHandler
Select Case name
Case "MessageClass"
Dim strGuid As String
' Check to see if this is one of our appointmentitems.
If IsItemUserItem(AppointmentItem_PropertyChange, strGuid) Then
' Change to our add-in message class. IPM.Appointment.XXX
AppointmentItem.MessageClass = gFormMsgClass
End If
End Select
done:
Exit Sub
ErrorHandler:
Trace "Error writing appointment item."
Resume done
End Sub
これは、ほとんどの場合のために働きます。しかし、私はまだインスタンスに実行しているときに私は、それがDLLとOCX間のデータ共有を容易にするために使用されるUserPropertiesにアクセスできない例外である場合、NewInspectorイベント中にアイテムをチェックします。
また、フォームデザイナーでフォームを編集しようとすると、Outlook 2007のOFTとしてフォームを保存できません。これで何が起こっているのかについて、私は少し迷っています...感謝。