mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
129 lines
5.4 KiB
129 lines
5.4 KiB
///*M*
|
|
// INTEL CORPORATION PROPRIETARY INFORMATION
|
|
// This software is supplied under the terms of a licence agreement or
|
|
// nondisclosure agreement with Intel Corporation and may not be copied
|
|
// or disclosed except in accordance with the terms of that agreement.
|
|
// Copyright (c) 1997 Intel Corporation. All Rights Reserved.
|
|
//
|
|
// Filename : CBTimer.idl
|
|
// Purpose : Defines the ICBTimer interface in IDL to compile to .h files.
|
|
// Contents : ICBTimer interface specification.
|
|
// ICBCallback interface specification.
|
|
//*M*/
|
|
|
|
//*I*
|
|
// Name : ICBTimer
|
|
// Purpose : Defines this interface, which is used to register an
|
|
// object for callbacks, setup callbacks, and delay callbacks.
|
|
// Context : This interface is used by any COM object that wishes to
|
|
// schedule callbacks.
|
|
// Notes : All of the methods exposed by this interface are
|
|
// backed by a mutex which may timeout. This avoids
|
|
// potential deadlock problems. An application using
|
|
// a CBTimer object should be prepared for methods
|
|
// to return unsuccessfully due to such timeouts.
|
|
//*I*/
|
|
[
|
|
object,
|
|
uuid(CD117003-7004-11D0-9CCF-00A0C9081C19),
|
|
helpstring("ICBTimer Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface ICBTimer : IUnknown
|
|
{
|
|
import "oaidl.idl";
|
|
|
|
// This method is used to register an object to receive callbacks from
|
|
// the CBTimer object. An IUnknown for the object is passed in as well as
|
|
// a context variable which is returned with all callbacks. A CBTimer object
|
|
// can only track one registered object at a time, so if an object wishes to
|
|
// change the dwObjectContext value, it needs to call UnRegisterObject()
|
|
// first, followed by RegisterObject() again.
|
|
HRESULT RegisterObject(
|
|
[in] IUnknown *pIUnknown, // Pointer to the IUnknown of the object
|
|
// which wishes to receive callbacks.
|
|
// Will be QI'd for the ICBTimerCallback interface
|
|
// defined below.
|
|
[in] DWORD *pdwObjectContext); // This is an uninterpreted context
|
|
// value that is returned with all callbacks
|
|
// to this address.
|
|
|
|
// Request a callback for the object registered via RegisterObject().
|
|
// Multiple callbacks may be registered.
|
|
HRESULT RequestCallback(
|
|
[in] DWORD dwDelay, // Delay, in milliseconds, from the current
|
|
// time, after which a callback is requested to occur.
|
|
[in] DWORD *pdwCallbackContext, // This is an uninterpreted context
|
|
// value that is returned with the callback
|
|
// returned for this particular duration.
|
|
[out] DWORD **ppdwCallbackID); // A nonce which identifies this callback,
|
|
// which can be used by the app to cancel the callback.
|
|
|
|
// Cancel the indicated callback.
|
|
HRESULT CancelCallback(
|
|
[in] DWORD *pdwCallbackID); // Cancel a callback previously requested
|
|
// via RequestCallback().
|
|
|
|
// Change the delay and context value for this callback.
|
|
HRESULT DelayCallback(
|
|
[in] DWORD *pdwCallbackID, // A nonce which identifies this callback
|
|
[in] DWORD dwDelay, // New delay, in milliseconds, from the current
|
|
// time, after which a callback is requested to occur.
|
|
[in] DWORD *pdwCallbackContext); // This is an uninterpreted context
|
|
// value that is returned with the callback
|
|
// returned for this particular duration.
|
|
|
|
// Cancel all callbacks for this object and release any interfaces held.
|
|
HRESULT UnRegisterObject(void);
|
|
}; // End interface ICBTimer.
|
|
|
|
|
|
//*I*
|
|
// Name : ICBCallback
|
|
// Purpose : Defines this interface, which is used to deliver
|
|
// callbacks registered via the ICBTimer interface.
|
|
// Context : This interface is queried for the by the CBTimer
|
|
// COM object in response to a call to ICBTimer::RegisterObject().
|
|
// This interface is called when a callback scheduled via
|
|
// ICBTimer::RequestCallback() occurs.
|
|
//*I*/
|
|
[
|
|
object,
|
|
uuid(CD117008-7004-11D0-9CCF-00A0C9081C19),
|
|
helpstring("ICBCallback Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface ICBCallback : IUnknown
|
|
{
|
|
import "oaidl.idl";
|
|
|
|
// This method is used to deliver a callback after a timeout occurs.
|
|
HRESULT Callback(
|
|
[in] DWORD *pdwObjectContext, // This is the uninterpreted context
|
|
// value that is set in RegisterObject().
|
|
[in] DWORD *pdwCallbackContext); // This is the uninterpreted context
|
|
// value that is set in RequestCallback().
|
|
}; // ICBCallback Interface definition
|
|
|
|
|
|
[
|
|
uuid(C8801950-AC9D-11d0-82A1-00AA00B5CA1B),
|
|
version(1.0),
|
|
helpstring("CBTimer 1.0 Type Library")
|
|
]
|
|
library CBTIMERLib
|
|
{
|
|
importlib("stdole2.tlb");
|
|
|
|
[
|
|
uuid(CD117007-7004-11D0-9CCF-00A0C9081C19),
|
|
helpstring("CBTimer Class")
|
|
]
|
|
coclass CCBTimer
|
|
{
|
|
[default] interface ICBTimer;
|
|
[default, source] interface ICBCallback;
|
|
};
|
|
|
|
};
|
|
|