vbSkinner in PB mit ActiveX?
Verfasst: 18.04.2005 23:04
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...
Mein Problem is das ich net weiß was und wie ich ansprechen muss.
Thx 4 Help
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...

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