PI_FLAGS enumeration

Contains the flags that control the asynchronous pluggable protocol handler.

Syntax

typedef enum _tagPI_FLAGS { 
  PI_PARSE_URL             = 0x00000001,
  PI_FILTER_MODE           = 0x00000002,
  PI_FORCE_ASYNC           = 0x00000004,
  PI_USE_WORKERTHREAD      = 0x00000008,
  PI_MIMEVERIFICATION      = 0x00000010,
  PI_CLSIDLOOKUP           = 0x00000020,
  PI_DATAPROGRESS          = 0x00000040,
  PI_SYNCHRONOUS           = 0x00000080,
  PI_APARTMENTTHREADED     = 0x00000100,
  PI_CLASSINSTALL          = 0x00000200,
  PI_PASSONBINDCTX         = 0x00002000,
  PI_NOMIMEHANDLER         = 0x00008000,
  PI_LOADAPPDIRECT         = 0x00004000,
  PD_FORCE_SWITCH          = 0x00010000,
  PI_PREFERDEFAULTHANDLER  = 0x00020000
} PI_FLAGS;

Constants

  • PI_PARSE_URL
    Asynchronous pluggable protocol should parse the URL and return S_OK if the URL is syntactically correct; otherwise S_FALSE.

  • PI_FILTER_MODE
    Asynchronous pluggable protocol handler should be running in filter mode and data will come in through the IInternetProtocolSink interface it exposes. The QueryInterface method will be called on the protocol handler for its IInternetProtocolSink interface.

  • PI_FORCE_ASYNC
    Asynchronous pluggable protocol handler should do as little work as possible on the apartment (or user interface) thread and continue on a worker thread as soon as possible.

  • PI_USE_WORKERTHREAD
    Asynchronous pluggable protocol handler should use worker threads and not use the apartment thread.

  • PI_MIMEVERIFICATION
    Asynchronous pluggable protocol handler should verify and report the MIME type.

  • PI_CLSIDLOOKUP
    Asynchronous pluggable protocol handler should find the CLSID associated with the MIME type.

  • PI_DATAPROGRESS
    Asynchronous pluggable protocol handler should report its progress.

  • PI_SYNCHRONOUS
    Asynchronous pluggable protocol handler should work synchronously.

  • PI_APARTMENTTHREADED
    Asynchronous pluggable protocol handler should use the apartment (or user interface) thread only.

  • PI_CLASSINSTALL
    Asynchronous pluggable protocol handler should install the class if the class is not found.

  • PI_PASSONBINDCTX
    Asynchronous pluggable protocol handler should pass address of the IBindCtx interface to the pUnk member of the PROTOCOLFILTERDATA structure.

  • PI_NOMIMEHANDLER
    Asynchronous pluggable protocol handler should disable MIME filters.

  • PI_LOADAPPDIRECT
    Asynchronous pluggable protocol handler should load the application directly.

  • PD_FORCE_SWITCH
    Asynchronous pluggable protocol handler should switch to the apartment thread, even if it does not need to.

  • PI_PREFERDEFAULTHANDLER
    Asynchronous pluggable protocol handler should choose the default handler over a custom handler.

Requirements

Minimum supported client

Windows XP

Minimum supported server

Windows 2000 Server

Header

Urlmon.h

IDL

Urlmon.idl