home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 June / Chip_2002-06_cd1.bin / zkuste / vbasic / Data / Utils / iface13m.exe / %MAINDIR% / PropertyPicker.cls < prev    next >
Encoding:
Visual Basic class definition  |  2002-04-18  |  4.5 KB  |  145 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4.   Persistable = 0  'NotPersistable
  5.   DataBindingBehavior = 0  'vbNone
  6.   DataSourceBehavior  = 0  'vbNone
  7.   MTSTransactionMode  = 0  'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "ascPropertyPicker"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = False
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = False
  14. ' ------------------------------------------------------------------------
  15. '      Copyright ⌐ 1997 Microsoft Corporation.  All rights reserved.
  16. '
  17. ' You have a royalty-free right to use, modify, reproduce and distribute
  18. ' the Sample Application Files (and/or any modified version) in any way
  19. ' you find useful, provided that you agree that Microsoft has no warranty,
  20. ' obligations or liability for any Sample Application Files.
  21. ' ------------------------------------------------------------------------
  22.  
  23. 'Modifications:
  24. '24/08/99
  25. '           - (Richard Moss) Microsoft 'forgot' to add font support - I added it!
  26.  
  27. Option Explicit
  28.  
  29. Private Type GUID
  30.     Data1 As Long
  31.     Data2 As Integer
  32.     Data3 As Integer
  33.     Data4(7) As Byte
  34. End Type
  35.  
  36. Private Declare Function GetSystemDefaultLCID Lib "kernel32" () As Long
  37. Private Declare Function OleCreatePropertyFrame Lib "oleaut32.dll" _
  38.     (ByVal hWndOwner As Long, _
  39.      ByVal X As Long, _
  40.      ByVal Y As Long, _
  41.      ByVal lpszCaption As Long, _
  42.      ByVal cObjects As Long, _
  43.      ByRef ppUnk As Long, _
  44.      ByVal cPages As Long, _
  45.      ByRef pPageClsID As GUID, _
  46.      ByVal lcid As Long, _
  47.      ByVal dwReserved As Long, _
  48.      ByVal pvReserved As Long) As Long
  49.  
  50. Public Enum PropertyPickerPages
  51.  ppickColor = 1
  52.  ppickPicture = 2
  53.  ppickColorPicture = 3
  54.  ppickPictureColor = 4
  55.  ppickFont
  56. End Enum
  57.  
  58. Public Sub ShowPicker(ByVal hWndOwner As Long, ByVal Caption As String, ByVal PropObject As Object, ByVal Pages As PropertyPickerPages)
  59.     Dim rclsid(2) As GUID
  60.     Dim lObjects(0) As Long
  61.     Dim clsidColor As GUID
  62.     Dim clsidPicture As GUID
  63.     Dim clsidFont As GUID
  64.     Dim lPageCount As Long
  65.     Dim lRet As Long
  66.     
  67.     If Not PropObject Is Nothing Then
  68.         lObjects(0) = ObjPtr(PropObject)
  69.         
  70.         'Guid of CStockFontPage?
  71.         '0x7ebdaae0?, 0x8120, 0x11cf, 0x89, 0x9f, 0x0, 0xaa, 0x0, 0x68, 0x8b, 0x10
  72.         With clsidFont
  73.             .Data1 = &H7EBDAAE0 '?
  74.             .Data2 = &H8120
  75.             .Data3 = &H11CF
  76.             .Data4(0) = &H89
  77.             .Data4(1) = &H9F
  78.             .Data4(2) = &H0
  79.             .Data4(3) = &HAA
  80.             .Data4(4) = &H0
  81.             .Data4(5) = &H68
  82.             .Data4(6) = &H8B
  83.             .Data4(7) = &H10
  84.         End With
  85.         
  86.         'Guid of CStockColorPage
  87.         '0x7ebdaae1, 0x8120, 0x11cf, 0x89, 0x9f, 0x0, 0xaa, 0x0, 0x68, 0x8b, 0x10
  88.         With clsidColor
  89.             .Data1 = &H7EBDAAE1
  90.             .Data2 = &H8120
  91.             .Data3 = &H11CF
  92.             .Data4(0) = &H89
  93.             .Data4(1) = &H9F
  94.             .Data4(2) = &H0
  95.             .Data4(3) = &HAA
  96.             .Data4(4) = &H0
  97.             .Data4(5) = &H68
  98.             .Data4(6) = &H8B
  99.             .Data4(7) = &H10
  100.         End With
  101.         
  102.         'Guid of CStockPicturePage
  103.         '0x7ebdaae2, 0x8120, 0x11cf, 0x89, 0x9f, 0x0, 0xaa, 0x0, 0x68, 0x8b, 0x10
  104.         With clsidPicture
  105.             .Data1 = &H7EBDAAE2
  106.             .Data2 = &H8120
  107.             .Data3 = &H11CF
  108.             .Data4(0) = &H89
  109.             .Data4(1) = &H9F
  110.             .Data4(2) = &H0
  111.             .Data4(3) = &HAA
  112.             .Data4(4) = &H0
  113.             .Data4(5) = &H68
  114.             .Data4(6) = &H8B
  115.             .Data4(7) = &H10
  116.         End With
  117.         
  118.         Select Case Pages
  119.             Case ppickColor
  120.                 rclsid(0) = clsidColor
  121.                 lPageCount = 1
  122.             Case ppickColorPicture
  123.                 rclsid(0) = clsidColor
  124.                 rclsid(1) = clsidPicture
  125.                 lPageCount = 2
  126.             Case ppickPicture
  127.                 rclsid(0) = clsidPicture
  128.                 lPageCount = 1
  129.             Case ppickPictureColor
  130.                 rclsid(0) = clsidPicture
  131.                 rclsid(1) = clsidColor
  132.                 lPageCount = 2
  133.             Case ppickFont
  134.                 rclsid(0) = clsidFont
  135.                 lPageCount = 1
  136.         End Select
  137.         
  138.         lRet = OleCreatePropertyFrame(hWndOwner, 0, 0, StrPtr(Caption), 1, lObjects(0), lPageCount, rclsid(0), GetSystemDefaultLCID, 0&, 0&)
  139.         If lRet <> 0 Then Err.Raise lRet
  140.     End If
  141. End Sub
  142.  
  143.  
  144.  
  145.