Seite 1 von 1

vbSkinner in PB mit ActiveX?

Verfasst: 18.04.2005 23:04
von MJP
Moinsen^^
Ich hätte da gerne moa en Problem... ich bin schon die ganze Zeit auf der suche nach einer schönen Skin Engine, hab auch schon ein paar gefunden aber die meisten haben geld gekostet :(
VBSkinner kostet natürlich nix, aber des Teil funktioniert mit ActiveX...
Hier mal der Link:
HP: http://www.visual-basic.com.ar
Download der .oxc datei hier... http://www.infotambo.com.ar/arc/skpr-ocx.zip


Also ich habe schon ein bissi probiert aber ich bekomms net hin mit OOP... :freak:
Mein Problem is das ich net weiß was und wie ich ansprechen muss.

Code: Alles auswählen

Interface my_IUnknown
  QueryInterface(a.l,b.l)
  AddRef()
  Release()
EndInterface

Interface Skinner Extends IDispatch
AlwaysOnTop(quest)
Applyto.l(apply)
BodyforeColor.l(color)
BodySkin.l(skin)
ChangeControlsBackColor(quest)
ChangeControlsForeColor(quest)
ShowFormIcon.l(skin)
ShowInactiveState(quest)
ShowsysCommands(quest)
Skin.l(skin)
Skinboxes(quest)
SkinPicture.l(Pic)
SysDisableSkinCaption(frage.s)
SysEnableSkinCaption(frage.s)
TitleBarFont(Font.s)
TitleBarBaforeColor.l(Color.l)
TitleBarSkin.l(skin)
EndInterface

Procedure RegisterDLL(DLL$)
  CoInitialize_(0)
  If OpenLibrary(1,DLL$)
    If CallFunction(1,"DllRegisterServer") = #S_OK
      RegisterDLL = #TRUE
    EndIf
    CloseLibrary(1)
  EndIf

  ProcedureReturn RegisterDLL
EndProcedure


Procedure UnRegisterDLL(DLL$)
  CoUninitialize_()
  If OpenLibrary(1,DLL$)
    If CallFunction(1,"DllUnregisterServer") = #S_OK
      UnRegisterDLL = #TRUE
    EndIf
    CloseLibrary(1)
  EndIf
  CallFunction(2,"AtlAxWinTerm")
  CloseLibrary(2)
  ProcedureReturn UnRegisterDLL
EndProcedure

Procedure CreateActiveXControl(hWnd,String$,IID)
  Shared CreateActiveXControl_init

  If CreateActiveXControl_init=0
    If OpenLibrary(2,"ATL.DLL")
      CallFunction(2,"AtlAxWinInit")
      CreateActiveXControl_init=1
    Else
      ProcedureReturn 0
    EndIf
  EndIf
  A$ = Space((Len(String$)+1)*2)
  MultiByteToWideChar_(#CP_ACP,0,String$,-1,@A$,Len(A$))
    If CallFunction(2,"AtlAxCreateControl",A$,hWnd,0,@obj1.my_IUnknown) = #S_OK

      CallFunction(2,"AtlAxGetControl",hWnd,@obj2.my_IUnknown)

      obj2\QueryInterface(IID,@final)
      If final
        CreateActiveXControl = final
      EndIf
      obj1\Release()
      obj2\Release()
    EndIf
  ProcedureReturn CreateActiveXControl
EndProcedure
If RegisterDLL("vbskpro2.ocx")
  
If OpenWindow(0,0,0,155,145,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"PB ActiveX Test") 
  *Skin_1.Skinner = CreateActiveXControl(WindowID(),"Window.Skinner",?IID_Skinner)
If *Skin_1
  *Skin_1.Skinner/Skin(skDarkSkin(5))
EndIf   
  Repeat
  
  ForEver 
  EndIf 
UnRegisterDLL("vbskpro2.ocx")  
EndIf 
Thx 4 Help

Re: vbSkinner in PB mit ActiveX?

Verfasst: 19.04.2005 08:20
von Kiffi
> VBSkinner kostet natürlich nix

bist Du Dir da sicher? Ich lese was von $49 (Single license) bis $290
(Enterprise license).

Skin-Funktionalitäten bieten auch die PureTools von Danilo.
Zu finden sind diese Userlibraries in der PureArea.

Grüße ... Kiffi

Verfasst: 19.04.2005 13:02
von MJP
ups... :oops: habe mich beim Link vertan :)
Es gibt ein Pro und eine Free Version
siehe hier... http://www.visual-basic.com.ar/descarga-en.htm
Skin-Funktionalitäten bieten auch die PureTools von Danilo.
Zu finden sind diese Userlibraries in der PureArea.
Ich benutze die Lib ja auch, nur ich will halt die Fenster Border und die Leiste skinnen... die API dazu hab ich auch noch nirgendwo gefunden :(

Thx 4 Help