BROWSE.H (BROWSE OLE Sample)

#ifdef WIN32

#ifdef UNICODE

#define FROM_OLE_STRING(str) str

#define TO_OLE_STRING(str) str

#else

#define FROM_OLE_STRING(str) ConvertToAnsi(str)

char* ConvertToAnsi(OLECHAR FAR* szW);

#define TO_OLE_STRING(str) ConvertToUnicode(str)

OLECHAR* ConvertToUnicode(char FAR* szA);

// Maximum length of string that can be converted between Ansi & Unicode

#define STRCONVERT_MAXLEN 500

#endif

#else // WIN16

#define APIENTRY far pascal

#define TCHAR char

#define TEXT(sz) sz

#define FROM_OLE_STRING(str) str

#define TO_OLE_STRING(str) str

#define LPTSTR LPSTR

#define LPCTSTR LPCSTR

// Windows NT defines the following in windowsx.h

#define GET_WM_COMMAND_ID(w,l) (w)

#define GET_WM_COMMAND_CMD(w,l) HIWORD(l)

#define GET_WM_COMMAND_HWND(w,l) LOWORD(l)

#endif

// Function prototypes

int APIENTRY WinMain (HINSTANCE, HINSTANCE, LPSTR, int);

#ifdef WIN16

BOOL __export CALLBACK MainDialogFunc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);

#else

BOOL CALLBACK MainDialogFunc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);

#endif

typedef enum {

TYPE_FUNCTION = 0,

TYPE_PROPERTY = 1,

TYPE_CONSTANT = 2,

TYPE_PARAMETER = 3

} OBJTYPE;

class CBrowseApp

{

public:

void Init(HWND hwndMain);

void Cleanup();

void ClearTypeLibStaticFields();

void ClearTypeInfoStaticFields();

void ClearElementStaticFields();

void ClearParamStaticFields();

HRESULT BrowseTypeLibrary();

HRESULT ChangeTypeInfosSelection();

HRESULT ChangeElementsSelection();

HRESULT ChangeParametersSelection();

void OpenElementHelpFile();

void EmptyList(HWND hwndList);

HRESULT LoadList(LPDISPATCH pdispItems, int nListID);

HRESULT TypeToString(LPDISPATCH pdispTypeDesc, LPTSTR pszTypeName);

void IDLFlagsToString(int n, LPTSTR psz);

void CallConvToString(int n, LPTSTR psz);

void FuncKindToString(int n, LPTSTR psz);

void InvokeKindToString(int n, LPTSTR psz);

void VariantToString(VARIANT v, LPTSTR psz);

private:

HINSTANCE m_hinst; // App's HINSTANCE.

HWND m_hwndMain; // App's main window which is a dialog..

HFONT m_hfont; // Non-bold font used for dialog fields.

TCHAR m_szHelpFile[128]; // Help file used by type library being browsed.

long m_lElemHelpCtx; // Help context of TypeInfo element being browsed.

};

Software for developers
Delphi Components
.Net Components
Software for Android Developers
More information resources
MegaDetailed.Net
Unix Manual Pages
Delphi Examples