1*6777b538SAndroid Build Coastguard Worker // Copyright 2015 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #include "ipc/handle_attachment_win.h" 6*6777b538SAndroid Build Coastguard Worker 7*6777b538SAndroid Build Coastguard Worker #include <windows.h> 8*6777b538SAndroid Build Coastguard Worker 9*6777b538SAndroid Build Coastguard Worker namespace IPC { 10*6777b538SAndroid Build Coastguard Worker namespace internal { 11*6777b538SAndroid Build Coastguard Worker HandleAttachmentWin(const HANDLE & handle)12*6777b538SAndroid Build Coastguard WorkerHandleAttachmentWin::HandleAttachmentWin(const HANDLE& handle) { 13*6777b538SAndroid Build Coastguard Worker HANDLE duplicated_handle; 14*6777b538SAndroid Build Coastguard Worker BOOL result = 15*6777b538SAndroid Build Coastguard Worker ::DuplicateHandle(GetCurrentProcess(), handle, GetCurrentProcess(), 16*6777b538SAndroid Build Coastguard Worker &duplicated_handle, 0, FALSE, DUPLICATE_SAME_ACCESS); 17*6777b538SAndroid Build Coastguard Worker if (result) { 18*6777b538SAndroid Build Coastguard Worker handle_.Set(duplicated_handle); 19*6777b538SAndroid Build Coastguard Worker } 20*6777b538SAndroid Build Coastguard Worker } 21*6777b538SAndroid Build Coastguard Worker HandleAttachmentWin(const HANDLE & handle,FromWire from_wire)22*6777b538SAndroid Build Coastguard WorkerHandleAttachmentWin::HandleAttachmentWin(const HANDLE& handle, 23*6777b538SAndroid Build Coastguard Worker FromWire from_wire) 24*6777b538SAndroid Build Coastguard Worker : handle_(handle) {} 25*6777b538SAndroid Build Coastguard Worker ~HandleAttachmentWin()26*6777b538SAndroid Build Coastguard WorkerHandleAttachmentWin::~HandleAttachmentWin() {} 27*6777b538SAndroid Build Coastguard Worker GetType() const28*6777b538SAndroid Build Coastguard WorkerMessageAttachment::Type HandleAttachmentWin::GetType() const { 29*6777b538SAndroid Build Coastguard Worker return Type::WIN_HANDLE; 30*6777b538SAndroid Build Coastguard Worker } 31*6777b538SAndroid Build Coastguard Worker 32*6777b538SAndroid Build Coastguard Worker } // namespace internal 33*6777b538SAndroid Build Coastguard Worker } // namespace IPC 34