Atomically exchanges a pair of values.
LONG InterlockedExchange(
    LPLONG volatile Target,
    LONG Value
);
Target 
Value, and returns its prior value. 
Value 
Target. InterlockedExchange, InterlockedDecrement, InterlockedCompareExchange, InterlockedExchangeAdd, and InterlockedIncrement provide a simple mechanism for synchronizing access to a variable shared by multiple threads. If the variable is in shared memory, threads of different processes can use this mechanism.
The original value of the Target parameter.
| Versions | Defined in | Include | Link to | 
|---|---|---|---|
| INtime 3.0 | intime/rt/include/winbase.h | windows.h | iwin32.lib | 
Note
This function operates in the real-time portion of your application.
InterlockedCompareExchange, InterlockedDecrement, InterlockedExchangeAdd, InterlockedIncrement, iwin32 API, iwin32 Overview