311 lines
12 KiB
C
311 lines
12 KiB
C
/***************************************************************************
|
|
|
|
// This is a part of the SkinMagic SDK library.
|
|
// Copyright (C) 2003-2002 Appspeed Inc.
|
|
// All rights reserved.
|
|
//
|
|
// This source code is only intended as a supplement to the
|
|
// SkinMagic SDK Reference and related electronic documentation
|
|
// provided with the library.
|
|
// See these sources for detailed information regarding the
|
|
// SkinMagic SDK product.
|
|
|
|
// SkinMagicLib SDK is a library designed for C/C++ programmer,
|
|
// you can add the most popular function of changing skin to your
|
|
// application with the API supplied by this library. SkinMagic
|
|
// is picture-based skin system, you can power your application
|
|
// with skin-changeable with simple call of several functions.
|
|
// And with the skin editor of SkinMagicBuilder, you can customize
|
|
// your own skin.
|
|
|
|
*****************************************************************************/
|
|
#ifndef _SKINMAGICLIB_H__
|
|
#define _SKINMAGICLIB_H__
|
|
|
|
#include <windows.h>
|
|
|
|
///////////////////////////////////////////////////////////////////////////
|
|
//Function: InitSkinMagicLib(HINSTANCE hInstance, char* szApplication ,
|
|
// char* szReserved1,
|
|
// char* szReserved2
|
|
//
|
|
//Parameters:
|
|
// hInstance
|
|
// [in] Handle of application instance.
|
|
// szApplication
|
|
// [in] Application defined in skin file. If you set this parameter the
|
|
// library can only load the skin file which application object named
|
|
// match szApplication.
|
|
// szReserved1
|
|
// [in] Reserved.
|
|
// szReserved2
|
|
// [in] Reserved.
|
|
//Return Values:
|
|
// If the function success, the return value is nonzero
|
|
// If the function fail, the return value is zero
|
|
//Remarks:
|
|
// InitSkinMagicLib function should be the first API called in SkinMagicLib SDK,
|
|
// followed by other APIs.
|
|
// For multithreaded applications, you must call InitSkinMagicLib in every thread.
|
|
//
|
|
int InitSkinMagicLib( HINSTANCE hInstance, char* szApplication ,
|
|
char* szReserved1,
|
|
char* szReserved2 );
|
|
|
|
///////////////////////////////////////////////////////////////////////////
|
|
//Function: LoadSkinFile( char* SkinFile )
|
|
// Load skin from file.
|
|
//Parameters:
|
|
// SkinFile
|
|
// [in] Specifies the skin file name.
|
|
//Return Values:
|
|
// If the function success, the return value is nonzero
|
|
// If the function fail, the return value is zero
|
|
//Remarks:
|
|
// ExitSkinMagicLib function should be the last API called in SkinMagicLib SDK.
|
|
// For multithreaded applications, you must call InitSkinMagicLib in every thread.
|
|
void ExitSkinMagicLib();
|
|
|
|
///////////////////////////////////////////////////////////////////////////
|
|
//Function: LoadSkinFile( char* SkinFile )
|
|
// Load skin from file.
|
|
//Parameters:
|
|
// SkinFile
|
|
// [in] Specifies the skin file name.
|
|
//Return Values:
|
|
// If the function success, the return value is nonzero
|
|
// If the function fail, the return value is zero
|
|
//Remarks:
|
|
// Load skin from file.
|
|
int LoadSkinFile( char* SkinFile );
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////
|
|
//Function: LoadSkinFromResource(HMODULE hModule, char* lpSkinName ,char* lpType)
|
|
// Use this function to load skin from resource.
|
|
//Parameters:
|
|
// hModule
|
|
// [in] Handle to the module whose executable file contains the resource.
|
|
// A value of NULL specifies the module handle associated with the image
|
|
// file that the operating system used to create the current process.
|
|
// lpSkinName
|
|
// [in] Specifies the name of the skin resource.
|
|
// lpType
|
|
// [in] Specifies the resource type.
|
|
|
|
//Return Values:
|
|
// If the function success, the return value is nonzero
|
|
// If the function fail, the return value is zero
|
|
//Remarks:
|
|
// The application can use skin defined in resource.
|
|
int LoadSkinFromResource(HMODULE hModule, char* lpSkinName ,char* lpType);
|
|
|
|
///////////////////////////////////////////////////////////////////////////
|
|
//Function: SetWindowSkin( HWND hWnd , char* SkinName )
|
|
// Use SetWindowSkin to skin the standard windows - with rectangular
|
|
// opaque client area and region-based non-client area, menu bar,
|
|
// system/maximize/minimize/close buttons, caption and sizing edges
|
|
// and corners.
|
|
//
|
|
//Parameters:
|
|
// hWnd
|
|
// [in]Handle to the window to be remove skin.
|
|
// SkinName
|
|
// [in]Specifies the name of FrameWnd object which defined in skin file.
|
|
//
|
|
//Return Values:
|
|
// If the function success, the return value is nonzero
|
|
// If the function fail, the return value is zero
|
|
//Remarks:
|
|
// Use SetWindowSkin to skin the standard windows - with rectangular
|
|
// opaque client area and region-based non-client area, menu bar,
|
|
// system/maximize/minimize/close buttons, caption and sizing edges
|
|
// and corners.
|
|
int SetWindowSkin( HWND hWnd , char* SkinName );
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////
|
|
//Function: SetShapeWindowSkin( HWND hWnd , char* SkinName )
|
|
// Use SetShapeWindowSkin to skin application-specific windows
|
|
// without non-client area and menu bar. These windows can have
|
|
// absolutely any shape or even be translucent.
|
|
//
|
|
//Parameters:
|
|
// hWnd
|
|
// [in]Handle to the window to be remove skin.
|
|
// SkinName
|
|
// [in]Specifies the name of ShapeWnd object which defined in skin file.
|
|
//
|
|
//Return Values:
|
|
// If the function success, the return value is nonzero
|
|
// If the function fail, the return value is zero
|
|
//Remarks:
|
|
// Use SetShapeWindowSkin to skin application-specific windows
|
|
// without non-client area and menu bar. These windows can have
|
|
// absolutely any shape or even be translucent.
|
|
//
|
|
int SetShapeWindowSkin( HWND hWnd , char* SkinName );
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////
|
|
//Function: RemoveWindowSkin( HWND hWnd )
|
|
// set skin of new create dialog
|
|
//
|
|
//Parameters:
|
|
// hWnd
|
|
// [in]Handle to the window to be remove skin.
|
|
//
|
|
//Return Values:
|
|
// If the function success, the return value is nonzero
|
|
// If the function fail, the return value is zero
|
|
//Remarks:
|
|
// Use this function to remove window skin.
|
|
//
|
|
int RemoveWindowSkin( HWND hWnd );
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////
|
|
//Function: SetDialogSkin( char* szSkinName )
|
|
// set skin of new create dialog
|
|
//
|
|
//Parameters:
|
|
// szSkinName
|
|
// [in]Specifies the name of FrameWnd object which defined in skin file.
|
|
//
|
|
//Return Values:
|
|
// If the function success, the return value is nonzero
|
|
// If the function fail, the return value is zero
|
|
//Remarks:
|
|
// Use this function to set dialog skin. dialog will auto be skinned
|
|
// after this function called.
|
|
//
|
|
int SetDialogSkin( char* szSkinName );
|
|
|
|
///////////////////////////////////////////////////////////////////////////
|
|
//Function: SetSingleDialogSkin( HWND hWnd ,char* szSkinName )
|
|
// Set the skin of an dialog
|
|
//
|
|
//Parameters:
|
|
// hWnd
|
|
// [in]Handle to the dialog to be set skin.
|
|
// szSkinName
|
|
// [in]Specifies the skin nanem.
|
|
//
|
|
//Return Values:
|
|
// If the function success, the return value is nonzero
|
|
// If the function fail, the return value is zero
|
|
//Remarks:
|
|
// Use this function to set single dialog skin.
|
|
//
|
|
int SetSingleDialogSkin( HWND hWnd , char* szSkinName );
|
|
|
|
///////////////////////////////////////////////////////////////////////////
|
|
//Function: RemoveDialogSkin()
|
|
// This function will stop auto skin dialog.
|
|
// the function will not remove the dialog's
|
|
// skin which already set. The new create dialog will have no skin.
|
|
//
|
|
//Parameters:
|
|
// none.
|
|
//Return Values:
|
|
// If the function success, the return value is nonzero
|
|
// If the function fail, the return value is zero
|
|
//Remarks:
|
|
// Use this function to stop auto skin dialog.
|
|
//
|
|
int RemoveDialogSkin();
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////
|
|
//Function: EnableWindowScrollbarSkin( HWND hWnd ,int fnBar )
|
|
// Initialize the skin scrollbars for a window
|
|
//
|
|
//Parameters:
|
|
// hWnd
|
|
// [in]Handle to the window to be set skin scrollbar.
|
|
// fnBar
|
|
// [in]Specifies the type of scroll bar for which to skin.
|
|
// This parameter can be one of the following values
|
|
// SB_HORZ for the window's standard horizontal scroll bar.
|
|
// SB_VERT for the window's standard scroll bar.
|
|
// SB_BOTH for both horizontal and vertical scroll bar.
|
|
//
|
|
//Return Values:
|
|
// If the function success, the return value is nonzero
|
|
// If the function fail, the return value is zero
|
|
//Remarks:
|
|
// Use this function to skin your window scrollbar
|
|
//
|
|
int EnableWindowScrollbarSkin( HWND hWnd ,int fnBar );
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////
|
|
//Function: DisableWindowScrollbarSkin( HWND hWnd )
|
|
// disable the skin scrollbars for a window
|
|
//
|
|
//Parameters:
|
|
// hWnd
|
|
// [in]Handle to the window to be disable skin scrollbar.
|
|
//
|
|
//Return Values:
|
|
// If the function success, the return value is nonzero
|
|
// If the function fail, the return value is zero
|
|
//Remarks:
|
|
// Use this function to skin your window scrollbar
|
|
//
|
|
int DisableWindowScrollbarSkin( HWND hWnd );
|
|
|
|
///////////////////////////////////////////////////////////////////////////
|
|
//Function: TrackSkinPopupMenu( HMENU hMenu,int x, int y, HWND hWnd )
|
|
// The TrackSkinPopupMenu function displays a shortcut menu at the
|
|
// specified location and tracks the selection of items on the menu.
|
|
// The shortcut menu can appear anywhere on the screen.
|
|
//
|
|
//Parameters
|
|
// hMenu
|
|
// [in] Handle to the shortcut menu to be displayed.
|
|
// The handle can be obtained by calling CreatePopupMenu
|
|
// to create a new shortcut menu, or by calling GetSubMenu
|
|
// to retrieve a handle to a submenu associated with an
|
|
// existing menu item.
|
|
//uFlags
|
|
// [in] Use zero of more of these flags to specify function options.
|
|
// Use one of the following flags to specify how the function positions
|
|
// the shortcut menu horizontally.
|
|
// ------------------------------------------------------------------------------
|
|
// TPM_CENTERALIGN If this flag is set, the function centers the shortcut
|
|
// menu horizontally relative to the coordinate specified
|
|
// by the x parameter.
|
|
// TPM_LEFTALIGN If this flag is set, the function positions the shortcut
|
|
// menu so that its left side is aligned with the coordinate
|
|
// specified by the x parameter.
|
|
// TPM_RIGHTALIGN Positions the shortcut menu so that its right side is
|
|
// aligned with the coordinate specified by the x parameter.
|
|
// ------------------------------------------------------------------------------
|
|
// Use one of the following flags to specify how the function positions the shortcut
|
|
// menu vertically.
|
|
// TPM_BOTTOMALIGN If this flag is set, the function positions the shortcut
|
|
// menu so that its bottom side is aligned with the coordinate
|
|
// specified by the y parameter.
|
|
// TPM_TOPALIGN If this flag is set, the function positions the shortcut
|
|
// menu so that its top side is aligned with the coordinate
|
|
// specified by the y parameter.
|
|
// TPM_VCENTERALIGN If this flag is set, the function centers the shortcut menu
|
|
// vertically relative to the coordinate specified by the y parameter.
|
|
//
|
|
// x
|
|
// [in] Specifies the horizontal location of the shortcut menu,
|
|
// in screen coordinates.
|
|
// y
|
|
// [in] Specifies the vertical location of the shortcut menu,
|
|
// in screen coordinates.
|
|
// hWnd
|
|
// [in] Handle to the window that owns the shortcut menu.
|
|
// This window receives all messages from the menu.
|
|
// The window does not receive a WM_COMMAND message from the
|
|
// menu until the function returns.
|
|
BOOL TrackSkinPopupMenu( HMENU hMenu, UINT uFlags, int x, int y, HWND hWnd );
|
|
|
|
|
|
#endif
|