221 lines
8.4 KiB
Plaintext
221 lines
8.4 KiB
Plaintext
|
VERSION 5.00
|
||
|
Begin VB.PropertyPage ppgViewFile
|
||
|
Caption = "File Viewer"
|
||
|
ClientHeight = 3600
|
||
|
ClientLeft = 0
|
||
|
ClientTop = 0
|
||
|
ClientWidth = 4800
|
||
|
PaletteMode = 0 'Halftone
|
||
|
ScaleHeight = 3600
|
||
|
ScaleWidth = 4800
|
||
|
Begin FileViewerExtensionProj.ctlFileViewer ViewerCtl
|
||
|
Height = 3615
|
||
|
Left = 0
|
||
|
TabIndex = 0
|
||
|
Top = 0
|
||
|
Width = 4815
|
||
|
_ExtentX = 8493
|
||
|
_ExtentY = 6376
|
||
|
End
|
||
|
End
|
||
|
Attribute VB_Name = "ppgViewFile"
|
||
|
Attribute VB_GlobalNameSpace = False
|
||
|
Attribute VB_Creatable = True
|
||
|
Attribute VB_PredeclaredId = False
|
||
|
Attribute VB_Exposed = True
|
||
|
' ===========================================================================
|
||
|
' | THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF |
|
||
|
' | ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO |
|
||
|
' | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A |
|
||
|
' | PARTICULAR PURPOSE. |
|
||
|
' | Copyright (c) 1998-1999 Microsoft Corporation |
|
||
|
' ===========================================================================w
|
||
|
|
||
|
' =============================================================================
|
||
|
' File: ppgViewFile.pag
|
||
|
' Project: FileViewerExtensionProj
|
||
|
' Type: Property Page
|
||
|
' =============================================================================
|
||
|
|
||
|
Option Explicit
|
||
|
Implements IMMCPropertyPage
|
||
|
|
||
|
' When the property page is part of a multiple selection this variable holds the
|
||
|
' index within SelectedControls() of the particular object for which the instance of
|
||
|
' the property page is being displayed.
|
||
|
Private m_Index As Integer
|
||
|
|
||
|
' MMC API DLL function declarations
|
||
|
|
||
|
Private Declare Function MMCPropertyHelp Lib "mssnapr.dll" (ByVal HelpTopic As String) As Long
|
||
|
|
||
|
' =============================================================================
|
||
|
' Method: IMMCPropertyPage_Initialize
|
||
|
' Type: Interface method
|
||
|
' Description: Called when the property page is created to pass the last
|
||
|
' parameter from MMCPropertySheet.AddPage to the property page
|
||
|
' Parameters: Data The final parameter from MMCPropertySheet.AddPage
|
||
|
' Output: None
|
||
|
' Notes: Store the parameter as the index of the file or folder for
|
||
|
' which to display the file. Get the file name and initialize
|
||
|
' the ctlFileViewer control.
|
||
|
' Unlike a UserControl property page, SelectedControls(0) will
|
||
|
' contain the MMCDataObject passed to
|
||
|
' ExtensionSnapIn_CreatePropertyPages so that the property page
|
||
|
' can access the data exported from the extended snap-in
|
||
|
' (FileExplorer in this case).
|
||
|
' =============================================================================
|
||
|
'
|
||
|
Private Sub IMMCPropertyPage_Initialize(ByVal Data As Variant, _
|
||
|
ByVal PropertySheet As SnapInLib.MMCPropertySheet)
|
||
|
|
||
|
On Error GoTo ErrTrap_IMMCPropertyPage_Initialize
|
||
|
|
||
|
Dim FileNames() As String
|
||
|
Dim FileName As String
|
||
|
Dim Paths() As String
|
||
|
Dim Path As String
|
||
|
Dim DataObj As MMCDataObject
|
||
|
Dim Index As Integer
|
||
|
|
||
|
' Data is only passed when the property sheet is displayed for a multiple selection
|
||
|
|
||
|
If Not VarType(Data) = vbError Then
|
||
|
m_Index = Data
|
||
|
End If
|
||
|
|
||
|
Set DataObj = SelectedControls(0)
|
||
|
|
||
|
' If there is only one file selected then get its file name and path directly from
|
||
|
' the exported data. For multiple selection, FileExplorer exports arrays of
|
||
|
' file names and paths. Use the index stored in IMMCPropertyPage_Initialize as the
|
||
|
' index into the array (as passed to MMCPropertySheet.AddPage in
|
||
|
' ExtensionSnapIn_CreatePropertyPages).
|
||
|
|
||
|
If DataObj.GetFormat("File") Then
|
||
|
FileName = DataObj.GetData("File")
|
||
|
Path = DataObj.GetData("Path")
|
||
|
ElseIf DataObj.GetFormat("Files") Then
|
||
|
FileNames = DataObj.FormatData(DataObj.GetData("Files"), 1, siMultiString)
|
||
|
Paths = DataObj.FormatData(DataObj.GetData("Paths"), 1, siMultiString)
|
||
|
Path = Paths(m_Index)
|
||
|
FileName = FileNames(m_Index)
|
||
|
End If
|
||
|
|
||
|
' Ask FileViewerCtl to display the contents of the file.
|
||
|
|
||
|
ViewerCtl.DisplayFile Path, FileName
|
||
|
|
||
|
Exit Sub
|
||
|
|
||
|
' Error Handler for this method
|
||
|
ErrTrap_IMMCPropertyPage_Initialize:
|
||
|
DisplayError "IMMCPropertyPage_Initialize"
|
||
|
|
||
|
End Sub
|
||
|
|
||
|
' =============================================================================
|
||
|
' Method: IMMCPropertyPage_Help
|
||
|
' Type: Interface method
|
||
|
' Description: Called when the user clicks the Help button on a property sheet
|
||
|
'
|
||
|
' Parameters: None
|
||
|
' Output: None
|
||
|
' Notes: Calls the MMC API function MMCPropertyHelp() to display a topic
|
||
|
' from FileExlporer's merged help file.
|
||
|
' =============================================================================
|
||
|
'
|
||
|
Private Sub IMMCPropertyPage_Help()
|
||
|
MMCPropertyHelp "VBSnapInsSamples.chm::VBSnapInsSamples/VBSnapInsSamples_35.htm"
|
||
|
End Sub
|
||
|
|
||
|
' =============================================================================
|
||
|
' Method: IMMCPropertyPage_GetDialogUnitSize
|
||
|
' Type: Interface method
|
||
|
' Description: Called when the property page is about to be created to allow
|
||
|
' the page to specify its size in dialog units.
|
||
|
'
|
||
|
' Parameters: None
|
||
|
' Output: None
|
||
|
' Notes: Returns the recommended height and width values for a snap-in
|
||
|
' property page.
|
||
|
' =============================================================================
|
||
|
'
|
||
|
Private Sub IMMCPropertyPage_GetDialogUnitSize(Height As Variant, Width As Variant)
|
||
|
Height = 218
|
||
|
Width = 252
|
||
|
End Sub
|
||
|
|
||
|
|
||
|
' =============================================================================
|
||
|
' Method: IMMCPropertyPage_QueryCancel
|
||
|
' Type: Interface method
|
||
|
' Description: Called when the user cancels the property sheet or wizard by
|
||
|
' pressing Esc, clicking the Cancel button, or clicking the 'X'
|
||
|
' button in the upper right corner.
|
||
|
'
|
||
|
' Parameters: Allow - set to False to prevent the sheet or wizard from closing.
|
||
|
' Output: None
|
||
|
' Notes: None
|
||
|
' =============================================================================
|
||
|
'
|
||
|
Private Sub IMMCPropertyPage_QueryCancel(Allow As Boolean)
|
||
|
|
||
|
End Sub
|
||
|
|
||
|
' =============================================================================
|
||
|
' Method: IMMCPropertyPage_Cancel
|
||
|
' Type: Interface method
|
||
|
' Description: Called when a property sheet or wizard is closed because the
|
||
|
' user clicked the Cancel button.
|
||
|
'
|
||
|
' Parameters: None
|
||
|
' Output: None
|
||
|
' Notes: None
|
||
|
' =============================================================================
|
||
|
'
|
||
|
Private Sub IMMCPropertyPage_Cancel()
|
||
|
|
||
|
End Sub
|
||
|
|
||
|
' =============================================================================
|
||
|
' Method: IMMCPropertyPage_Close
|
||
|
' Type: Interface method
|
||
|
' Description: Called when a property sheet or wizard is closed because the
|
||
|
' user clicked the 'X' button in the upper right corner.
|
||
|
'
|
||
|
' Parameters: None
|
||
|
' Output: None
|
||
|
' Notes: None
|
||
|
' =============================================================================
|
||
|
'
|
||
|
Private Sub IMMCPropertyPage_Close()
|
||
|
|
||
|
End Sub
|
||
|
|
||
|
' =============================================================================
|
||
|
' Method: DisplayError
|
||
|
' Type: Subroutine
|
||
|
' Description: A method to format and display a runtime error
|
||
|
' Parameters: szLocation A string identifying the source location
|
||
|
' (i.e. method name) where the error occurred
|
||
|
' Output: None
|
||
|
' Notes: The error will be displayed in a messagebox formatted as the
|
||
|
' following sample:
|
||
|
'
|
||
|
' Method: SomeMethodName
|
||
|
' Source: MMCListSubItems
|
||
|
' Error: 2527h (9511)
|
||
|
' Description: There is already an item in the collection that has the specified key
|
||
|
'
|
||
|
' =============================================================================
|
||
|
'
|
||
|
Private Sub DisplayError(szLocation As String)
|
||
|
|
||
|
MsgBox "Method:" & vbTab & vbTab & szLocation & vbCrLf _
|
||
|
& "Source:" & vbTab & vbTab & Err.Source & vbCrLf _
|
||
|
& "Error:" & vbTab & vbTab & Hex(Err.Number) & "h (" & CStr(Err.Number) & ")" & vbCrLf _
|
||
|
& "Description:" & vbTab & Err.Description, _
|
||
|
vbCritical, "FileViewerExtension Runtime Error"
|
||
|
End Sub
|