In Win32 application programming, WindowProc (or window procedure ), also known as WndProc is a user-defined callback function that processes messages sent to a window. This function is specified when an application registers its window class and can be named anything (not necessarily WindowProc ).
11-410: The window procedure is responsible for handling all messages that are sent to a window. The function prototype of WindowProc is given by: hwnd is a handle to the window to which the message was sent and uMsg identifies the actual message by its identifier, as specified in winuser.h . wParam and lParam are parameters whose meaning depends on the message. An application should identify
22-493: A compiler can separately translate into object files , to be combined by a linker into an executable or a library . The function declaration precedes the function definition, giving details of name, return type, and storage class along with other relevant attributes. Function prototypes can be used when either: In a prototype, parameter names are optional (and in C/C++ have function prototype scope , meaning their scope ends at
33-409: Is a data type that acts as an abstraction of a class . It describes a set of method signatures , the implementations of which may be provided by multiple classes that are otherwise not necessarily related to each other. A class which provides the methods listed in a protocol is said to adopt the protocol, or to implement the interface. If objects are fully encapsulated then the protocol
44-1067: Is the only way in which they may be accessed by other objects. For example, in Java , the Comparable interface specifies a method compareTo() which implementing classes must implement. This means that a sorting method, for example, can sort a collection of any objects of types which implement the Comparable interface, without having to know anything about the inner nature of the class (except that two of these objects can be compared by means of compareTo() ). Some programming languages provide explicit language support for protocols ( Ada , C# , D , Dart , Delphi , Go , Java , Logtalk , Object Pascal , Objective-C , OCaml , PHP , Racket , Seed7 , Swift , Python 3.8). In languages supporting multiple inheritance , such as C++ , interfaces are implemented as abstract classes . In languages without explicit support, protocols are often still present as conventions. This
55-410: The compiler that the function takes one integer argument and you enable the compiler to catch incorrectly specified calls. By placing function prototypes in a header file , one can specify an interface for a library . In C++, function prototypes are also used in class definitions. Protocol (object-oriented programming) In object-oriented programming , an interface or protocol type
66-420: The end of its own WindowProc function, so that unprocessed messages can be passed down to the default procedure. Function prototype In computer programming , a function prototype is a declaration of a function that specifies the function's name and type signature ( arity , data types of parameters , and return type ), but omits the function body. While a function definition specifies how
77-456: The end of the prototype), however, the type is necessary along with all modifiers (e.g. if it is a pointer or a reference to const parameter) except const alone. In object-oriented programming , interfaces and abstract methods serve much the same purpose. Consider the following function prototype: or or Function prototypes include the function signature, the name of the function, return type and access specifier. In this case
88-411: The function does what it does (the "implementation"), a function prototype merely specifies its interface, i.e. what data types go in and come out of it. The term "function prototype" is particularly used in the context of the programming languages C and C++ where placing forward declarations of functions in header files allows for splitting a program into translation units , i.e. into parts that
99-487: The message and take the required action. Hundreds of different messages are produced as a result of various events taking place in the system, and typically, an application processes only a small fraction of these messages. In order to ensure that all messages are processed, Windows provides a default window procedure called DefWindowProc that provides default processing for messages that the application itself does not process. An application usually calls DefWindowProc at
110-404: The name of the function is "Sum". The function signature defines the number of parameters and their types. The return type is "void". This means that the function is not going to return any value. Note that the parameter names in the first example are optional. In early versions of C, if a function was not previously declared and its name occurred in an expression followed by a left parenthesis, it
121-410: Was implicitly declared as a function that returns an int and nothing was assumed about its arguments. In this case the compiler would not be able to perform compile-time validity checking of the number and type(s) of arguments. The C99 standard requires the use of prototypes. The function MyFunction expects to be called with an integer argument. By including the function prototype, you inform
SECTION 10
#1733086321564#563436