/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- * * The contents of this file are subject to the Netscape Public License * Version 1.0 (the "NPL"); you may not use this file except in * compliance with the NPL. You may obtain a copy of the NPL at * http://www.mozilla.org/NPL/ * * Software distributed under the NPL is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL * for the specific language governing rights and limitations under the * NPL. * * The Initial Developer of this code under the NPL is Netscape * Communications Corporation. Portions created by Netscape are * Copyright (C) 1998 Netscape Communications Corporation. All Rights * Reserved. */ /* * intshcut.h - Internet Shortcut interface definitions. */ #ifndef __INTSHCUT_H__ #define __INTSHCUT_H__ /* Headers **********/ #include "isguids.h" #ifdef __cplusplus extern "C" { /* Assume C declarations for C++. */ #endif /* __cplusplus */ /* Constants ************/ /* Define API decoration for direct import of DLL functions. */ #ifdef _INTSHCUT_ #define INTSHCUTAPI #else #define INTSHCUTAPI DECLSPEC_IMPORT #endif /* HRESULTs */ #define URL_E_INVALID_FLAGS MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x1000) #define URL_E_INVALID_SYNTAX MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x1001) #define URL_E_UNREGISTERED_PROTOCOL MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x1002) #define IS_E_INVALID_FILE MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x2000) #define IS_E_INVALID_DIRECTORY MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x2001) #define IS_E_EXEC_FAILED MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x2002) /* Interfaces *************/ /* IUniformResourceLocator::SetURL() input flags */ typedef enum iurl_seturl_flags { /* Guess protocol if missing.*/ IURL_SETURL_FL_GUESS_PROTOCOL = 0x0001, /* Use default protocol if missing.*/ IURL_SETURL_FL_USE_DEFAULT_PROTOCOL = 0x0002, /* flag combinations */ ALL_IURL_SETURL_FLAGS = (IURL_SETURL_FL_GUESS_PROTOCOL | IURL_SETURL_FL_USE_DEFAULT_PROTOCOL) } IURL_SETURL_FLAGS; /* IUniformResourceLocator::Open() input flags */ typedef enum iurl_open_flags { /* * Allow interaction with user. If set, hwndOwner is valid. If clear, * hwndOwner is NULL. */ IURL_OPEN_FL_ALLOW_UI = 0x0001, /* flag combinations */ ALL_IURL_OPEN_FLAGS = IURL_OPEN_FL_ALLOW_UI } IURL_OPEN_FLAGS; #undef INTERFACE #define INTERFACE IUniformResourceLocator DECLARE_INTERFACE_(IUniformResourceLocator, IUnknown) { /* IUnknown methods */ STDMETHOD(QueryInterface)(THIS_ REFIID riid, PVOID *ppvObject) PURE; STDMETHOD_(ULONG, AddRef)(THIS) PURE; STDMETHOD_(ULONG, Release)(THIS) PURE; /* IUniformResourceLocator methods */ /* * Success: * S_OK * * Failure: * E_OUTOFMEMORY * URL_E_INVALID_SYNTAX */ STDMETHOD(SetURL)(THIS_ PCSTR pcszURL, DWORD dwFlags) PURE; /* * Success: * S_OK * S_FALSE * * Failure: * E_OUTOFMEMORY */ STDMETHOD(GetURL)(THIS_ PSTR *ppszURL) PURE; /* * Success: * S_OK * * Failure: * E_OUTOFMEMORY * URL_E_INVALID_SYNTAX * URL_E_UNREGISTERED_PROTOCOL * IS_E_EXEC_FAILED */ STDMETHOD(Open)(THIS_ HWND hwndOwner, DWORD dwFlags) PURE; }; typedef IUniformResourceLocator *PIUniformResourceLocator; typedef const IUniformResourceLocator CIUniformResourceLocator; typedef const IUniformResourceLocator *PCIUniformResourceLocator; /* Prototypes *************/ /* TranslateURL() input flags */ typedef enum translateurl_flags { /* Guess protocol if missing.*/ TRANSLATEURL_FL_GUESS_PROTOCOL = 0x0001, /* Use default protocol if missing.*/ TRANSLATEURL_FL_USE_DEFAULT_PROTOCOL = 0x0002, /* flag combinations */ ALL_TRANSLATEURL_FLAGS = (TRANSLATEURL_FL_GUESS_PROTOCOL | TRANSLATEURL_FL_USE_DEFAULT_PROTOCOL) } TRANSLATEURL_FLAGS; /* * Success: * S_OK * S_FALSE * * Failure: * E_OUTOFMEMORY * E_POINTER * URL_E_INVALID_FLAGS */ INTSHCUTAPI HRESULT WINAPI TranslateURL(PCSTR pcszURL, DWORD dwFlags, PSTR *ppszTranslatedURL); #ifdef __cplusplus } /* End of extern "C" {. */ #endif /* __cplusplus */ #endif /* ! __INTSHCUT_H__ */