객체 연결 삽입(客體連結挿入, Object Linking and Embedding, OLE)은 마이크로소프트가 개발한 기술로서 문서와 기타 객체에 연결과 삽입을 도와주는 연결규약이다. 용어 사전에서는 간단히 "윈도우의 각종 응용 프로그램 사이에서 서로 데이터를 공유할 수 있는 기능"으로 정의하고 있다.[1] 개발자들에게는 OLE 사용자 지정 컨트롤 (OCX)를 제공함으로써 사용자 지정 UI 요소를 개발하고 사용할 수 있게 하고 있다. 기술적인 측면에서 OLE 객체는 IOleObject 인터페이스를 갖고 있는 객체이며 객체의 요구에 따라 다양한 인터페이스를 포함하고 있을 수 있다.
OLE 1.0은 1990년에 출시되었으며 마이크로소프트가 초기 버전의 윈도우 운영 체제들용으로 만든 원래의 동적 데이터 교환(DDE)의 혁명이었다. DDE가 실행 중인 두 개의 응용 프로그램들 사이에 전송할 수 있는 데이터 양에 제한을 받았지만 OLE는 두 개의 문서 사이에 사용 중인 링크를 관리할 수 있게 하고 다른 문서에 특정한 종류의 문서를 삽입할 수도 있었다.
OLE 2.0은 OLE 1.0의 뒤를 이으며 같은 목표를 어느 정도 공유하고 있지만 VTBL을 직접 이용하지 않고 컴포넌트 오브젝트 모델의 최상위에 다시 추가되었다. 자동화, 드래그 앤드 드롭 등의 기능들이 새로 추가되었다.
OLE 사용자 지정 컨트롤은 1994년에, 지금은 쓰이지 않는 비주얼 베이직 확장 컨트롤들을 대체하기 위해 도입되었다. 이러한 컨트롤들을 업그레이드한 것은 아니지만 새로운 아키텍처는 OLE에 기반을 두고 있었다. 특히 OLE 2.0을 지원했던 어떠한 컨테이너라도 이미 OLE 사용자 지정 컨트롤을 삽입할 수 있었지만 이러한 컨트롤들은 컨테이너가 이를 지원하지 않는다면 이벤트에 반응하지 못했다. OLE 사용자 지정 컨트롤은 일반적으로 .ocx 확장자의 동적 링크 라이브러리의 형태로 배포된다. 1996년에 컨트롤에 대한 모든 인터페이스들(IUnknown을 제외)이 선택 가능케 함으로써 컨트롤들의 파일 크기를 낮출 수 있었으므로 다운로드 속도가 더 빨라지게 되었다. 이러한 것들은 뒤에 ActiveX 컨트롤로 불리게 되었다.