This chapter described the apartment abstraction as a logical grouping of objects that share concurrency and reentrancy constraints. Processes have one or more apartments. Threads execute in exactly one apartment at a time. Each COM object belongs to exactly one apartment, and to allow interapartment communications, COM supports marshaling of object references across apartment boundaries. A proxy is a local representation of an object that resides in another apartment. Standard proxies use ORPC to transmit method requests to the remote object. Custom proxies do whatever they like to provide the correct semantics. The apartment is the fundamental abstraction that is used throughout the COM remoting architecture.